複数の型の継承を処理する方法を理解しようとしています。本番環境にライブ データがある既存の Code First / EF / MVC プロジェクトがあります。システムは、多くの機能を実行できる「ドキュメント」と呼ばれるタイプを使用し、DocumentID にリンクできる関連テーブルが多数あります。
現在、製品、数量、および単価を参照する「OrderLines」のコレクションなど、いくつかのより具体的なプロパティを実装する、より差別化された種類のドキュメントである発注書があります。発注書に固有のフィールドが他にもいくつかあります。「OrderLines」を持つベース ドキュメント タイプと区別されることに加えて、発注書はサプライ サイド ドキュメントであり、そのため、サード パーティは「ベンダー」です。将来的には、サード パーティとしてのベンダーも含む他のサプライ サイド ドキュメントが存在する可能性があります。
これで、デマンド サイドとなる新しいドキュメント タイプを実装する準備が整いました。これは、顧客と呼ばれるサード パーティが存在することを意味します。また、OrderLines のコレクションもあります。
私のシステムは現在 TPH として設定されているため、テーブルは「ドキュメント」と呼ばれ、内部のドキュメントが発注書であることを示す識別子列があります。
新しい型を追加し、継承を使用して OrderLines コレクションと CustomerID / Customer リンクを実装するにはどうすればよいですか? c# は多重継承を行うことができないようです。そのため、次のことは問題外です。
ドキュメント -> OrderLinesDocument -> PurchaseOrder
ドキュメント -> OrderLinesDocument -> 請求書
ドキュメント -> VendorDocument -> PurchaseOrder
ドキュメント -> CustomerDocument -> 請求書
すべてのドキュメントではなく、多くのドキュメントに共通する可能性があるフィールドを、中産階級はどこに実装するでしょうか?
インターフェイスを使用してこれを達成する方法はありますか?それでもEFにテーブルを適切に把握させますか?