2011-07-09 10 views
0

テーブルCustomersTrucksの間に多対多の関係があるとします。それらはテーブルCustomersTrucksによって結合されます。接続テーブルからのEntity Frameworkモデルデータの仕組み

今、Customersに列を追加したいと思います。ただし、この列はトラックに関連付けられた顧客に固有であり、Vansなどの他の表に関連付けられている顧客には該当しません。

したがって、Customersの代わりにCustomerTrucksにこの新しい列を追加する方が適切であると結論づけることができます。そうすれば、私はCustomersテーブルに、時には未使用のデータを追加することはありません。

テーブルに新しい列を追加すると、そのエンティティモデルはどうなりますか?通常、Customersエンティティには、Trucksというコレクションプロパティがあると考えられます。では、接続テーブルの新しい列はどのようにモデル化されますか?

答えて

0

2つの列(相互接続された表のFK)のみを持つ通常のジャンクション表がある場合、EFはその表を非表示にして多対多リレーションを直接処理できるため、その表をエンティティとして使用しません。

ジャンクション・テーブルに追加の列を追加すると、ジャンクション・テーブルでなくなり、EFパースペクティブを形成します。これは多対多テーブルではなくなりました(多対多データベース用語で)。 CustomersTrucsは、独自のデータを持つ完全なエンティティになりました。このデータは、アプリケーションで設定する必要があります。

は、あなたの新しいプロパティがCustomersテーブルの一部ではなく、説明したようにしているため、それはまたCustomerエンティティに属していないことを - あなたはあなたのモデルにCustomersTruckエンティティを必要とし、このエンティティが(2一対多の関係を持つことになります1〜Customerおよび1〜Truck)。そのため、CustomerTruckは、ナビゲーションプロパティCustomersTrucksを持つようになりました。

関連する問題