1

今、これはおそらくばかげた問題ですが、それは私にかなりの頭痛の種を与えています。

私が達成しようとしているのは、EFがMM関係を持つ2つのオブジェクトを生成することです。 MaterialおよびProduct。製品には多くの材料があり、1つの材料が複数の製品に含まれている可能性があります。秘訣は、たとえば、材料を使用して測定できることですkg。1つの材料が製品にどのくらいのkgを保持するかを知る必要があります。注:材料は製品なしで存在でき、製品は材料なしでは存在できません。

これは私が思いついた最初のデザインですが、明らかに機能しません。

[Material]  [Product]    [MaterialInProduct]
ID  *PK     ID  *PK      ProductID  *FK              __together these two fields are primary key          
Code        Code         MaterialID *FK              for this table
Name        Name         QuantityOfMaterialInProduct 
Price       Quantity
Unit        Unit
Quantity

したがって、私の質問は、そのフィールドを適切に追加する方法QuantityOfMaterialInProductです。これがないと、DBContextツールがすべてを適切に生成するからです。

4

1 に答える 1

4

EFに多対多の関連付けを作成させる代わりに、MaterialInProductエンティティを自分で定義します。これをマップして、ProductIdとMaterialId(関連するナビゲーションプロパティを含む)から作成された複合キーを作成できます。このようにすると、フィールドを簡単に追加できます。

カスタムマッピングに関するドキュメントはここにあります

于 2013-02-17T00:29:08.203 に答える