2017-01-30 7 views
0

XamarinでAndroidアプリを開発していて、オフライン同期を使用したいが、ほぼすべての例のようにDTOをデータベースに直接接続することはできませんクイックスタートソリューションはAzureポータルからダウンロードできます。Azure Client SDKで使用するカスタムTableController <>オフライン同期バックエンドIMobileServiceSyncTable app

今のところ私はAzureポータルからダウンロードしたToDoサンプルアプリケーションを使用しています。これは、デフォルトでアドレスhttps://myappname.azurewebsites.netにマップされています。

私はWebApiアプリケーションを持っています。そのアドレスはToDoアプリケーションの設定に入れて、キャッチオールルートではアプリケーションがアドレスhttp://mywebapidev/tables/todoitemを呼び出していました。 WebApiアプリケーションでは、Route/tables/{controller}ルートと、TableControllerを継承するToDoItemControllerというコントローラを追加しました。

私もそれのように働くことができるようにするために私の質問は、私が(コントローラに、他の場所)を実装するために何が必要なのかされて、私は初期化

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

に設定しています私自身のDomainManagerを実装しましたAzure Client SDKオフライン同期のバックエンドですか?

答えて

1

特に、第3章のhttp://aka.ms/zumobookを読むことをお勧めします。これは、オフライン同期のプロセスをかなり徹底的に行っています。しかし

ショートバージョン:

  1. サービスはあなたがバージョンカラム(不透明な)を必要とするので、サービスが紛争解決を行うことができ、増分同期
  2. を行うことができますので、あなたは、あなたのモデル内のDateTimeOffsetタイプを必要としています。
  3. ODataクエリをLINQに変換し、次にLINQを特定の要件に変換する必要があります。これは難しい部分です。
+0

GetAllExampleのように、コントローラの規約に基づいてアクションとその名前が付けられていますか? – MathiasR

+0

デコレータも使用できます。 –

+0

ちょっとやってもらえますか?私は立ち往生し、どこにも情報がないようです。例えば。コントローラ内のZumoブックの例では、メソッドはpublic async Task > GetAllTodoItemsAsync(ODataQueryOptionsクエリ)です。これはどうして呼び出されるのですか?どのメソッドにも属性はありません。 – MathiasR

関連する問題