2017-01-30 58 views
0

我們正在開發與Xamarin的Android應用程序,並希望使用離線同步,但我們不能我們的DTO直接連接到數據庫,在幾乎所有的例子做以及可以從Azure門戶下載的快速入門解決方案。定製TableController <>離線同步後端與Azure的客戶端SDK IMobileServiceSyncTable使用應用

現在我使用的是從Azure的門戶網站,在默認情況下被映射到地址https://myappname.azurewebsites.net下載的待辦事項示例應用程序。

我有一個WebApi應用程序,其地址放在ToDo應用程序的設置中,並且通過一條全路徑看到該應用程序調用地址http://mywebapidev/tables/todoitem。在WebApi應用程序中,我添加了Route/Tables/{controller}路由和一個名爲ToDoItemController的控制器,該控制器從TableController繼承。

我也實現我自己的DomainManager,這是我在初始化設置我

public class ToDoItemController : TableController<ToDoItem> 
{ 
    protected override void Initialize(HttpControllerContext controllerContext) 
    { 
     base.Initialize(controllerContext); 
     this.DomainManager = new MyDomainManager(); 
    } 
} 

我的問題是,我需要做什麼來實現(在控制器和其他地方),它能夠作爲工作的Azure Client SDK脫機同步的後端?

回答

1

我建議你閱讀http://aka.ms/zumobook - 尤其是第3章。它完全通過離線同步的過程。

短版雖然:

  1. 你需要的DateTimeOffset類型的模型,使該服務可以做增量同步
  2. 你需要一個版本列(不透明),這樣的服務可以做到解決衝突。
  3. 您需要將OData查詢轉換爲LINQ,然後將LINQ轉換爲您的特定需求。這是困難的部分。
+0

在控制器約定中的操作和它們的名字是否像GetAllExample一樣? – MathiasR

+0

你也可以使用裝飾器。 –

+0

可以詳細說明一下,還是很多?我被卡住了,似乎沒有任何信息。例如。在控制器中的Zumo書籍的示例中是一種方法public async Task > GetAllTodoItemsAsync(ODataQueryOptions query)。這是如何被稱爲?任何方法都沒有屬性。 – MathiasR

相關問題