1

免責事項として、ここで誤った理解が行われている可能性があることを警告します。

状況:

顧客の Windows デバイス (RT ではない) に展開される既存の Windows VB タイムシート アプリケーションがあります。このアプリケーションは、ローカル SQL Express ストアを作成し、SQL データ同期を介して Azure SQL DB と同期します。

Azure SQL DB は、私が契約しているローカルに保存されているマスター DB (これも SQL データ同期を介して) とさらに同期します。マスター データは通常、このマスター DB でのみ変更され、トランザクション データは Azure に同期されます。

アプリケーションが操作しているテーブルはすべて dbo スキーマの下にあります。

私は、Azure SQL DB を指す Azure Mobile Service を使用するアプリケーションの Xamarin Forms モバイル (iOS、WP8、Droid、および PCL を使用したおそらく winRT) バージョンの作成に取り組んでいます。 . 現在のところ、機能のサブセットのみを使用しています。

問題:

問題は (すでに明らかなように) dbo スキーマの下にあるほとんどのテーブルにアクセスする必要があることです。

Azure モバイル サービスに dbo スキーマを使用するように指示し、生成されたログインに手動またはスクリプトで適切な権限を与えることができれば。これは、テーブルの移行に必要なシステム プロパティを含めるために必要です。

もう 1 つの提案は、Azure モバイル サービスの同期操作に必要なシステム列をマスター データベースに追加し、それらを Azure データベースにプッシュしてから、モバイル サービス スキーマに必要なすべてのデータのビューを作成することです。これによりサービスが制限されるかどうかはまだわかりません。

もちろん、すべてのデータを dbo 以外のスキーマに移動するオプションは常にありますが、これには他のシステムでの拡張作業が必要であり、特に私の慣れていないためにかなりの時間がかかる可能性があります。

関連する情報、議論、またはアドバイスをいただければ幸いです。

4

1 に答える 1

0

おそらく最良の選択肢は、Azure Mobile Services システム プロパティをデータベースに作成することです。Azure Mobile Services では、次の 5 つの特定のフィールドが必要です。

  • id - 一意の文字列にする必要があります - ここで GUID を使用することをお勧めします
  • __version - AMS にこれを処理させ、デフォルト/null を許可
  • __createdAt - 通常、挿入時に SQL Server で自動生成されます
  • __updatedAt - AMS に処理させる
  • __deleted - レコードが削除されていない限り、false にする必要があります (論理的な削除のサポート)

これらはすべて、.NET SDK の EntityData クラスで定義されています。既存のレコードの値のセットを 1 回だけ実行し、それ以降は AMS SDK に処理させることができます。

于 2015-10-09T22:02:10.510 に答える