2

2 つの SQL Server データベース (dbInfoおよびdbData) があり、1 つまたは 2 つの EF モデルを .NET アプリケーション (WPF、ASP.NET MVC など) に追加したいと考えています。

Q: EF モデルを追加する際の最善のアプローチは何ですか。各データベースに 1 つずつ、2 つのモデルを追加しますか?

  • 各データベースに 1 つずつ、2 つの edmx モデルを追加しますか?
  • SQL シノニムを使用して 2 つのデータベースに 1 つの edmx モデルを追加しますか?
  • 他のバージョン...
4

1 に答える 1

0

これは、2 つのデータベース間のやり取りの量に大きく依存します。

それにもかかわらず、私はそれらを別々のモデルに保持することを強く望んでいます. 2 つのデータベースに対応する 1 つのモデルでは、回避したい多くの複雑さと依存関係が導入されます。

  • シノニムを定義する必要があります。
  • 「他の」データベースが変更された場合、メイン データベースのシノニムを修正する必要がある場合があります。
  • 1 つのデータベースが変更された場合は、モデル全体を更新する必要があります。
  • データベースは (おそらく) 異なるバージョンを持つことはできません (edmx モデルはバージョンに依存します)。
  • シノニムは、別のデータベース内のオブジェクトへのパスです。データベースの 1 つを移動するか、ターゲット オブジェクトの名前を変更すると、パスが壊れる可能性があります。あなたは実行時にのみ気づきます。
  • バックアップ/復元は同期している必要があります。

そしておそらくもっと...

しかし、これらの反対を吹き飛ばす 1 つの説得力のある要求が存在する可能性があります。1 つのトランザクションで両方のデータベースのデータを変更する場合は、シノニムと 1 つのコンテキスト (および 1 つのデータベース接続) を使用する方がはるかに簡単です。それ以外の場合はTransactionScope、コードで を使用し、データベース サーバーで DTC を有効にする必要があります。

于 2012-11-15T14:08:23.783 に答える