2017-05-05 22 views
1

How to use the managed client for Azure Mobile Appsは、EFで使用するPOCOクラスではなくテーブルエンティティで動作するようです。 UWPに移植しようとしているビジネスアプリケーションがあります。複雑な関連データがあり、オブジェクトグラフの複数のエンティティを編集してdbContext.SaveChanges()で永続させることができます。ただし、参照されるドキュメントは、テーブル単位で保存された変更を示します。Azure Mobile Servicesオフライン同期をEntity Frameworkコアで使用できますか?

EFコアを使用するか、Azure Mobile Servicesオフライン同期を使用するかを選択する必要がありますか? Azure Mobile Servicesオフライン同期でEFコアが使用されていることを示すサンプルコードがありますか?

答えて

1

私たちは複雑な関連データを持ち、オブジェクトグラフの複数のエンティティを編集し、dbContext.SaveChanges()で永続化することができます。ただし、参照されるドキュメントは、テーブル単位で保存された変更を示します。

オフラインのコンテキストでテーブル間の関係を実装し、複数のテーブルを同時に更新したいようです。私が知る限り、複数のテーブルを同時に更新することは、オフライン同期の世界では機能しません。 Chapter 3 - Data Access and Offline Sync/Relationshipsを参照してください。

Azure Mobile Appsは、オフラインで使用される場合、操作テーブルを備えています。テーブルに対して各操作を行うと、操作テーブルにエントリが作成されます。次に、モバイル・バックエンドに対して操作表が再生され、リモート・データベースの変更が反映されます。ただし、同時にデータベース内の複数のテーブルを更新するトランザクションを持たないという効果もあります。各テーブルの各レコードは個別に更新されます。オフライン同期が使用するプッシュプロセスは、テーブル間の関係がどのように機能するかに大きな影響を与えます。具体的には、オフライン同期の世界では一方向の関係のみが機能します。

+1

感謝 - MSFTが、EFコアは、Azureのモバイルサービスオフライン同期で使用することができますか? – Vague

1

私の研究から推測できることから、mobileservicesqlitestoreとdbcontextの統合はまだ行われていません。これらのコンテキストの両方は、フレームワークにPOCOを登録する必要があります。

はEFについて、POCOは

の変更追跡、ナビゲーションプロパティ等の良さのためEFによって(またはそれがPOCOに由来している)、「管理」とDBSetとしてDBContext内に登録されなければなりませんMobileServiceSQLLiteStore、テーブルはオフライン同期用に登録されています

var store = new MobileServiceSQLiteStore"localsync.db"); 
store.DefineTable<TodoItem>(); 

これらは2つの異なる目的に使用される2つの異なるフレームワークです。 EF(EFコア経由)は、モバイルデバイス(アンドロイド、UWP、およびIOS(まだそこにはありません))上のデータを管理するための私の好ましい手段です。 MobileServiceSQLStoreは、変更を管理するために行われた変更を記録するためにPOCOを管理する必要がありますが、オブジェクトグラフの複雑さを処理することはできません。

IMO、何が起こる必要があるのは、CRUD活動のためにEFイベントにフックすることです。これは、EFの主な目的の1つです.EFグラフの変更を追跡し、コンテキスト上の保存が完了するまで保持します。 SAVEが発生すると、これらの変更が列挙され、基になるプロバイダ(SQLLite、SQL Serverなど)で実行されます。

必要なものは、EFのCRUDアクティビティを取り、その中で保持されている変更をプッシュするEF用MobileServiceSQLStoreプロバイダです。 MobileServiceSQLStoreの要件を理解してください。

私が仕事をしたいと思っているものしかし、まずMobileServiceSQLStoreをよく知っておく必要があります。

私はそれが完全な答えではなく、100%正しいとは限りませんが、1) 2)助けに興味のある人。 EFのプロバイダを作成する上

詳細URL:情報@Fred漢のための

https://blog.oneunicorn.com/2016/11/11/so-you-want-to-write-an-ef-core-provider/

https://docs.microsoft.com/en-us/ef/core/providers/writing-a-provider

+0

+1 @codputer。これは、EF Core repo [ローカルとリモートデータベース間のオンライン/オフライン同期のサポート](https://github.com/aspnet/EntityFramework/issues/4645)で議論されています。 – Vague

関連する問題