2016-12-27 6 views
1

私はモバイルクライアントアプリケーションでオフラインモードを動作させるためにOffline Syncという組み込み機能を使用したいので、Azure Mobile Appを使用してSQL Serverデータベースを消費するバックエンドAPIを開発しています。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エンドポイントを作成して、オフライン同期モードでは、モバイルクライアントで完璧に動作します。しかし、私は技術的にderivedTableControllerからAPIエンドポイントを作成するための[MobileAppController]属性、

// 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コントローラのプロパティとメソッドを定義するだけです。 TableControllerApiControllerから継承し、新しい機能(EFデータコンテキスト、オフライン同期などを使用してAzure Mobile AppsのテーブルでCURD操作)を提供します。

公式documentで述べたようにおよそMobileAppController

MobileAppController属性は、ルートを登録モバイルアプリJSONシリアライザを設定し、クライアントのバージョンチェックをオンにします。

一般に、オフライン同期とクライアント側の単純なクエリ機能が必要な場合は、TableControllerを使用する必要があると仮定します。

関連する問題