エンティティフレームワークセルフトラッキングエンティティ - 2つのデータベースを同期させる

私は、Entity Framework 4でセルフトラッキングエンティティを使用しています。私は2つのデータベースを持っていて、全く同じスキーマを持っています。しかし、あるデータベースのテーブルは/編集されたものに追加されます(実際のテーブル定義ではなく、データが追加/編集されます)。そして、このデータベースとの間のすべての変更を同期する必要があります。他のデータベース。

私は両方のために別々のコンテキストを作成することができます。しかし、あるデータベースから大きなグラフを読み込んだ場合、他のデータベースをグラフでどのように更新できますか?簡単な方法はありますか?

私のデータベースモデルは大きく、複雑で完全なリレーショナルです。したがって、すべての単一のエンティティを通過して、他のデータベースから読み込みを行い、存在するかどうかを確認し、必要に応じて更新/挿入してから、完全なオブジェクトグラフを通じてこれを実行するのは大きな仕事です。

何か案は?

1

1 答え

これはEFのユースケースではありません。 EFでは、あなたが説明したことを正確に行う必要があります。自己追跡エンティティは、これらのオブジェクトインスタンスの変更を追跡することができます。時間の経過とともに自分のデータベースに加えられた変更については何も知らず、2番目のデータベースの状態についても何も知りません。

SQLサーバーのネイティブ機能(ミラーリング、トランザクションログの出荷またはSSISを含む)とMS Syncフレームワークを見てみてください。あなたの詳細な要件に応じて、これらのツールを使用するとより良いことができます。

2
追加された
MS Sync Frameworkは、このようなシナリオのためのツールです。
追加された 著者 Ladislav Mrnka,
残念ながら、私はMySqlまたはSQL Serverを実行しているビジネスに対応する必要があるため、単一のデータベースに縛られていません。しかし、私はそれがEFのユースケースではないかもしれないというあなたの意見を得る。これは通常どのように行われますか?一元的に変更が加えられた本社のデータベースがあります。そして、ある時点では、これらの変更はビジネスのどのデータベースにも伝播する必要があります。
追加された 著者 eyeballpaul,
複数のタイプのデータベースであっても?つまり、SQL ServerとMySqlの両方ですか?
追加された 著者 eyeballpaul,