EF の専門家のアドバイスがどうしても必要です。DDD 内の複数のテーブルにまたがるカスタム エンティティをどのように作成しますか? 私が知っていることから、3つの可能な解決策があります:
モデルにカスタム エンティティを作成し、それに対して DefiningQuery を追加します。これは、そのエンティティへのビューとして機能し、基本的に純粋な SQL で複数のテーブルを結合します。
プロパティとして他のエンティティを持つ POCO クラスとしてカスタム エンティティを作成します。LINQ でクエリを実行する場合、必要なデータを最初に匿名オブジェクトに射影し、次にそのカスタム エンティティに射影します。
複数のテーブルにまたがるビューを DB に作成し、それをモデルに追加する
最初のオプションでは、Oracle 準拠の SQL クエリを記述する必要があるため、特定のデータ ソース実装 (Oracle) への依存関係が作成されます。
2番目のソリューションのカスタムオブジェクトはモデルの外で定義されており、TBHは私が最も気に入っているものであり、LINQを理解する必要がある人を除けば、実際の落とし穴は見られません:)
3 番目のオプションは、多くの DB ビューを作成することを意味しますが、DBA が満足するかどうかはわかりません。
どちらの解決策がより合理的に聞こえるか、ご意見をお聞かせください。ありがとう