Customerと の間に多対多の関連付けCustomerGroupがあるため、いわゆるジャンクション テーブルもあります。たとえばCustomerGroupCustomer、 と がCustomerIdありCustomerGroupIdます。
このテーブルにこれら 2 つのフィールドしかない場合、EF はそれを暗黙的に使用できます。つまり、マッピングでジャンクション テーブルであることを示すコレクションCustomerGroupを持つことができます。ここに例があります。map はできますが、必須ではありません。データベース ファーストで作業する場合、この暗黙的な動作がデフォルトです。CustomersCustomerGroupCustomerCustomer.CustomerGroups
ただし、CustomerIds のみに関心があるため、通常の 1 対多の関連付けを行うことができますCustomerGroup.CustomerGroupCustomers。このナビゲーション プロパティに対処する場合、必要な結合は 1 つだけで、クエリは非常に軽量です。あなたがCustomerGroupできるインスタンスがある場合
group.CustomerGroupCustomers.Select(c => c.CustomerId)
sのみCustomerIdが照会されます。
Customers必要に応じて、次のようにして直接取得できます
group.CustomerGroupCustomers.Select(c => c.Customer)