Asp.net web api 从一个控制器调用另一个控制器上的TableController.Lookup()失败
在使用.NET后端的Azure移动应用程序中,我需要一个控制器来查找由另一个控制器处理的实体。例如,在Azure团队的Todo快速启动项目中,想象一下添加一个处理用户管理的Asp.net web api 从一个控制器调用另一个控制器上的TableController.Lookup()失败,asp.net-web-api,azure-mobile-services,Asp.net Web Api,Azure Mobile Services,在使用.NET后端的Azure移动应用程序中,我需要一个控制器来查找由另一个控制器处理的实体。例如,在Azure团队的Todo快速启动项目中,想象一下添加一个处理用户管理的UserController。在TodoItemController中,我需要调用UserController.GetUser(id)检查用户是否有权发布新的TodoItem 在TodoItemController.cs中: var userController = new UserController(); var user
UserController
。在TodoItemController
中,我需要调用UserController.GetUser(id)
检查用户是否有权发布新的TodoItem
在TodoItemController.cs中:
var userController = new UserController();
var user = userController.GetUser("12345");
if (user.IsAuthorized)
{
// Insert TodoItem
}
var context = new todoProjectContext();
var userDomainManager = new EntityDomainManager<User>(context, Request);
var user = userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if (user.isAuthorized)
{
// Insert item
}
在UserController.GetUser()
中调用时,上述代码引发异常。异常表示请求参数不能为null。我的猜测是缺少了一些东西,因为我自己创建了UserController
,而不是由框架创建的
如何使其工作?这似乎在
TodoItemController.cs中工作:
var userController = new UserController();
var user = userController.GetUser("12345");
if (user.IsAuthorized)
{
// Insert TodoItem
}
var context = new todoProjectContext();
var userDomainManager = new EntityDomainManager<User>(context, Request);
var user = userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if (user.isAuthorized)
{
// Insert item
}
var context=newtodoprojectcontext();
var userDomainManager=newentitydomainmanager(上下文,请求);
var user=userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if(user.isAuthorized)
{
//插入项目
}
但不确定这是否是最佳解决方案。这似乎在TodoItemController.cs中起作用:
var userController = new UserController();
var user = userController.GetUser("12345");
if (user.IsAuthorized)
{
// Insert TodoItem
}
var context = new todoProjectContext();
var userDomainManager = new EntityDomainManager<User>(context, Request);
var user = userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if (user.isAuthorized)
{
// Insert item
}
var context=newtodoprojectcontext();
var userDomainManager=newentitydomainmanager(上下文,请求);
var user=userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if(user.isAuthorized)
{
//插入项目
}
但我不确定这是最好的解决方案