从一个控制器调用另一个控制器上的 TableController.Lookup() 失败
Calling TableController.Lookup() from one controller on another controller fails
在使用 .NET 后端的 Azure 移动应用程序中,我需要一个控制器来查找由第二个控制器处理的实体。例如,在 Azure 团队的 Todo Quickstart 项目中,想象添加一个 UserController
来处理用户管理。在 TodoItemController
中,我需要调用 UserController.GetUser(id)
来检查用户是否有权 post 一个新的 TodoItem。
在TodoItemController.cs
中:
var userController = new UserController();
var user = userController.GetUser("12345");
if (user.IsAuthorized)
{
// Insert TodoItem
}
上述代码在UserController.GetUser()
中调用TableController.Lookup()时抛出异常。异常表示请求参数不能为空。我的猜测是缺少某些东西,因为我自己创建了 UserController
,而不是由框架创建的。
我怎样才能完成这项工作?
这似乎适用于 TodoItemController.cs
:
var context = new todoProjectContext();
var userDomainManager = new EntityDomainManager<User>(context, Request);
var user = userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if (user.isAuthorized)
{
// Insert item
}
虽然不确定这是最好的解决方案。
在使用 .NET 后端的 Azure 移动应用程序中,我需要一个控制器来查找由第二个控制器处理的实体。例如,在 Azure 团队的 Todo Quickstart 项目中,想象添加一个 UserController
来处理用户管理。在 TodoItemController
中,我需要调用 UserController.GetUser(id)
来检查用户是否有权 post 一个新的 TodoItem。
在TodoItemController.cs
中:
var userController = new UserController();
var user = userController.GetUser("12345");
if (user.IsAuthorized)
{
// Insert TodoItem
}
上述代码在UserController.GetUser()
中调用TableController.Lookup()时抛出异常。异常表示请求参数不能为空。我的猜测是缺少某些东西,因为我自己创建了 UserController
,而不是由框架创建的。
我怎样才能完成这项工作?
这似乎适用于 TodoItemController.cs
:
var context = new todoProjectContext();
var userDomainManager = new EntityDomainManager<User>(context, Request);
var user = userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if (user.isAuthorized)
{
// Insert item
}
虽然不确定这是最好的解决方案。