これは、2 つのデータベース間のやり取りの量に大きく依存します。
それにもかかわらず、私はそれらを別々のモデルに保持することを強く望んでいます. 2 つのデータベースに対応する 1 つのモデルでは、回避したい多くの複雑さと依存関係が導入されます。
- シノニムを定義する必要があります。
- 「他の」データベースが変更された場合、メイン データベースのシノニムを修正する必要がある場合があります。
- 1 つのデータベースが変更された場合は、モデル全体を更新する必要があります。
- データベースは (おそらく) 異なるバージョンを持つことはできません (edmx モデルはバージョンに依存します)。
- シノニムは、別のデータベース内のオブジェクトへのパスです。データベースの 1 つを移動するか、ターゲット オブジェクトの名前を変更すると、パスが壊れる可能性があります。あなたは実行時にのみ気づきます。
- バックアップ/復元は同期している必要があります。
そしておそらくもっと...
しかし、これらの反対を吹き飛ばす 1 つの説得力のある要求が存在する可能性があります。1 つのトランザクションで両方のデータベースのデータを変更する場合は、シノニムと 1 つのコンテキスト (および 1 つのデータベース接続) を使用する方がはるかに簡単です。それ以外の場合はTransactionScope
、コードで を使用し、データベース サーバーで DTC を有効にする必要があります。