2016-12-27 58 views
1

我使用Azure Mobile App開發後端API以使用SQL Server數據庫,因爲我想使用內置功能Offline Sync在我的移動客戶端應用程序中使用離線模式。Azure移動應用程序與定製控制器脫機同步

所以,我用TableController

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

和離線同步模式工作在移動客戶端完美創建API端點。但是當我使用[MobileAppController]屬性,它在技術上從derivedTableController創建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中的脫機同步功能?

回答

2

據我所知,ApiController只是定義API控制器的屬性和方法。而TableController繼承自ApiController,並提供了新功能(使用EF數據上下文,脫機同步等在Azure移動應用程序中的表上執行CURD操作)。

正如官方所提到documentMobileAppController

的MobileAppController屬性寄存器的路線,樹立移動應用JSON序列,並開啓客戶端版本檢測。

一般來說,如果你想離線同步和客戶端簡單查詢功能,我假設你需要使用一個TableController

相關問題