如何从另一个TableController访问由一个Azure Mobile Services TableController包装的表?

时间:2014-03-25 13:54:41

标签: entity-framework azure azure-mobile-services

我有一个新的.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数据?

由于

1 个答案:

答案 0 :(得分:3)

我有完全相同的问题。显然,没有办法从另一个访问TableController,但有一种简单的查询方式。在每个 TableController 初始化方法中,创建了一个实体框架 DbContext ,可以将其保存为成员变量,然后用于查询每个表由您的代码中定义的实体框架上下文公开。