したがって、3つのメインテーブルがあります(データは重要ではありません)。
- お客様
- グループ
- 従業員
そして、他の3つのテーブルを結合するための「多対多」のテーブルがいくつかあります。
- GroupCustomer
- GroupEmployee
本質的に、顧客は多くのグループに属することができ、従業員は多くのグループに属することができます。
では、特定の顧客について問い合わせたとしましょう。だから私は次のようなものを持っています:
Customer customer1 = GetCustomer1();
ここで、顧客が所属しているグループに所属している個別の従業員の数を取得したいと思います...
int count = customer1.GroupCustomers.SomeLinqMagicGoesHere
それで、私が必要とするLinqの魔法は何ですか?
重要:関係はlinq-to-sqlを使用して生成されます
それが私のニーズを説明するのに役立つ場合、いくつかの望ましい入力/出力:
Customer
--------
C1
C2
GroupCustomer
--------
C1 | G1
C1 | G2
C2 | G1
Group
--------
G1
G2
GroupEmployee
--------
E1 | G1
E1 | G2
E2 | G2
Employee
--------
E1
E2
したがって、C1のカウント数は2である必要があり、C2のカウント数は1である必要があります。
それが問題をもっと混乱させていないことを願っています!