2016-06-15 12 views
2

Xamarin Formsアプリケーションを作成し、現在Android上で実行しています。バックエンドは.Net Azureモバイルアプリサービスビューまたはストアドプロシージャを使用したAzureモバイルアプリのオフラインデータ同期

私はarticlesから、オフラインデータの同期は"/ tables"エンドポイントでのみ動作することを理解しています。

(少なくとも私が理解するものthatsの)しかし、私のAPIが参加したクエリ(エンティティ関係)からのデータを公開して、ストアドプロシージャからいくつか。現在のSDKには適用できないことを意味しますか? 私のオプションは何ですか?

テーブルを公開し、クライアント側の結合のビジネスロジックを処理しますか?

答えて

4

リレーションシップとオフライン同期の2つのオプションがあります。

1)トリガーを含むビューを作成します。エントリが挿入、更新、または削除された場合、バックエンドテーブルに「正しいこと」を実行します。ビューは自動的に更新されます。あなたのEFモデルはビューを参照する必要があります。実際にはビューであるため、1つのテーブルのみを扱うため、これは完全にオフラインで動作します。ここにはSQLの複雑さがあり、多くの関係をこのように表現することはできません。

2)「読み取り専用」として個々のテーブルを使用する - 挿入、更新を行うために、カスタムAPIへの削除/ポスト/ PUTと、データベースの参照整合性が維持されるように削除されます。これは、あなたのデータは、オフラインで利用可能ですが、あなたがオンライン

3でない限り)データベースを更新してデータベースから関係を削除し、代わりにクライアント上など、結合を実行することができないことを意味します。これはあなたのクライアントに負担をかける。また、クライアントがバックエンドにアクセスしていることを知らないため、バックエンドが完全性を強制する必要があることを意味します。おそらくベストアイデアではないでしょう。

4)データを正規化してデータベースを再構成します。

誰かが他のアイデアを思いついてくれると確信しています。 https://shellmonger.com/2016/05/27/30-days-of-zumo-v2-azure-mobile-apps-day-26-relationship-advice/

どれを選択するかは、書きたいコードの量、T-SQLでの気持ち、実際のデータモデルの外観によって決まります。それらのすべてとトレードオフがあります。

+0

あなたの記事を読んでいます。彼らは非常に便利です。最初の方法(トリガーを含むビューを作成する)を示す例がありますか?どうもありがとう。 –

+1

私のブログでhttps://shellmonger.com - 「Azure Mobile Appsの30日間」リンクの19日目を探す –

関連する問題