2

私は最近、プロジェクトでエンティティ フレームワークを使い始めましたが、特定のケースをモデル化する方法について疑問に思っていました。

このシナリオを考えてみましょう:

  • 私のアプリケーションは、いくつかの種類の契約をモデル化する必要があります
  • すべてのタイプの契約には、下請契約のインスタンスが 1 つ以上含まれています。
  • すべてのタイプのコントラクトは、そのサブコントラクトをコレクションで公開します
  • すべての種類の契約には、契約の 1 つに対応する特定の種類の下請け契約のみを含めることができます (タイプの契約にはタイプのContractA下請け契約のみが含まれ、タイプSubcontractAの契約にはタイプの下請契約ContractBのみが含まれますSubcontractB) 。

エンティティ フレームワーク モデルでこれをモデル化する最良の方法は何でしょうか?

私の最初の試行では、基本タイプ間の関連付けを使用しましたが、特定のタイプのコントラクトに 2 つの異なるプロパティを持たずに、派生タイプのコントラクトごとにサブコントラクトのタイプを指定できるようにしたかったのです。

4

1 に答える 1

0

私は最近、同様の状況に遭遇しました。基本タイプのみの関連付けを設定し、エンティティに検証を追加して、プロパティに適切なサブタイプのみが含まれていることを確認しました。IValidatableObjectを確認してください。

欠点は、これが実行時に発生するため、プログラマーが間違った型を割り当てる可能性があり、テストするまでわからないことです。また、オブジェクトを使用するには、オブジェクトを適切な型にキャストする必要があります。それは私が思いつくことができる最良の選択肢でした。

誰かがより良い解決策を持っているかどうか知りたいです。

于 2013-07-24T15:43:36.727 に答える