【问题标题】:Azure mobile app offline sync with custom controllerAzure 移动应用离线同步与自定义控制器
【发布时间】:2017-05-11 15:16:54
【问题描述】:

我正在使用 Azure Mobile App 开发后端 API 以使用 SQL Server 数据库,因为我想使用名为 Offline Sync 的内置功能在我的移动客户端应用程序中以离线模式工作。

所以,我使用TableController 创建了 API 端点,

public class TodoItemController : TableController<TodoItem>
{
    protected override void Initialize(HttpControllerContext controllerContext)
    {
        base.Initialize(controllerContext);
        SyncMobiAppContext context = new SyncMobiAppContext();
        DomainManager = new EntityDomainManager<TodoItem>(context, Request);
    }        
}

离线同步模式在移动客户端中完美运行。但是当我使用[MobileAppController] 属性(从技术上讲来自TableControllerderived)来创建API 端点时,

// Use the MobileAppController attribute for each ApiController you want to use  
// from your mobile clients 
[MobileAppController]
public class CustomerController : ApiController
{
    // GET api/<controller>
    public IEnumerable<string> Get()
    {         
        using (var context = new SyncMobiDBEntities())
        {
            return context.Customers.Select(x => x.FirstName).ToArray();
        }
    }        
}

离线同步不起作用。

有什么方法可以使用[MobileAppController] 属性 API 在客户端 SDK 中实现或支持离线同步功能?

【问题讨论】:

    标签: c# azure asp.net-web-api azure-mobile-services


    【解决方案1】:

    据我所知,ApiController 只是为 API 控制器定义属性和方法。而TableController 继承自ApiController 并提供新功能(通过使用EF 数据上下文、离线同步等对Azure 移动应用程序中的表进行CURD 操作)。

    正如官方document中提到的关于MobileAppController

    MobileAppController 属性注册路由,设置移动应用 JSON 序列化程序,并打开客户端版本检查。

    一般来说,如果你想要离线同步和客户端简单查询功能,我假设你需要使用TableController

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多