スキーマはほぼ同じですが、保持されているデータが異なる 2 つのデータベースがあります。消費するアプリケーションはこれらの違いを知る必要がないため、エンティティ フレームワーク モデルを持つサービスを作成していますが、単一の型を返すようにしたいと考えています。例えば:
**DatabaseA** -> EFModelA
- Customers
- Orders
**DatabaseB** -> EFModelB
- Customers
- Orders
またはをCustomer
返すのではなく、 a 呼び出しを介してクラスを返すことができるようにしたいと考えています。EFModelA.Customer
EFModelB.Customer
私はこれを行う 2 つの方法を検討しましたが、どちらの方法が保守の面で最も抵抗が少ないかを判断できません。彼らです:
- アプリケーションが 1 つのエンティティ セットのみを参照できるように、DatabaseB のデータを結合する DatabaseA のデータの統合ビューを作成します。欠点は、キーが一意であることを確認する方法ですが、追加のフィールドを追加して、どのデータベースからのものかを示すことができます。
- 2 つの別個の EF モデルを用意し、何らかの方法でスクリプト (T4 テンプレートなど) を作成して、同等の型の結合モデルを作成し、2 つの EF 型と結合型の間のマッピング コードを実装します。
他の誰かがこの問題に遭遇しましたか?どのように解決しましたか? そうでない場合、この問題にどのように取り組みますか?