我有一个新的.Net后端Azure移动服务项目,其中每个包含一个表的两个TableController类,并且我想从另一个Controller访问一个表。我应该从另一个实例化一个Controller,还是直接使用上下文对象来访问数据?
e.g。
RegistrationItemController包装RegistrationItem表
public class RegistrationItemController : TableController<RegistrationItem>
和UserController包装User表
public class UserController : TableController<User>
在UserController上的PostUser方法中,我应该实例化一个RegistrationItemController实例并按以下方式访问它:
public async Task<IHttpActionResult> PostUser(User item)
{
//look up RegistrationItem to validate this request
RegistrationItemController registrationController = new RegistrationItemController();
var registrationItem = registrationController.GetRegistrationItem(item.RegistrationId);
...
我说上面的内容不能正常工作,因为我无法调用RegistrationItemController的受保护的Initialize方法,该方法创建上下文并创建DomainManager。
或者我是以错误的方式解决这个问题,UserController应该只是自己的上下文来直接访问RegistrationItem数据?
由于
答案 0 :(得分:3)
我有完全相同的问题。显然,没有办法从另一个访问TableController,但有一种简单的查询方式。在每个 TableController 的初始化方法中,创建了一个实体框架 DbContext ,可以将其保存为成员变量,然后用于查询每个表由您的代码中定义的实体框架上下文公开。