2

ユーザーがメンバーになっているすべてのクラブのリストを表示するクエリがあります。User、Club、ClubMember の 3 つのエンティティがあります。クラブとユーザーの間の関連付けとして ClubMember を使用する多対多があります。

 var clubs = db.Users
               .Where(u => u.UserName == User.Identity.Name)
               .SelectMany(u => u.ClubMembers)
               .Select(m => m.Club)
               .ToList();

表の各行には、クラブの他のメンバーを表示するためのリンクが含まれます。したがって、表の行は次のようになります。

Club1 - This is club one - "show all members"
Club2 - This is club two - "show all members"

ここで、「すべてのメンバーを表示」リンクに含めたいのは、メンバーの数を含めることです。したがって、次のようになります。

Club1 - This is club one - "show all members (25)"
Club2 - This is club two - "show all members (14)"

私の質問は、各クラブのメンバーの総数を返すようにクエリを変更するにはどうすればよいですか?

4

1 に答える 1

3

Club オブジェクトには、ClubMembers の List も存在すると言っても過言ではありません。そのため、クエリステートメントは次のようにする必要があります。

var clubs = db.Users
.Where(u => u.UserName == User.Identity.Name)
.SelectMany(u => u.ClubMembers)
.Select(m => new SomeType{ Club = m.Club, NumberOfMembers = m.Club.ClubMembers.Count()})
.ToList();
于 2012-12-06T20:59:29.530 に答える