0

以下の有権者の数を返す必要があります。

Usersは と多対多の関係にありVotersます。Votersに関連するカウントを返したいと思いUsersます。私はこれを試しました:db.Users.Voters.Count()しかし、それが認識しないので惨めに失敗します.Voters

これを直接行う方法はありますか?

4

3 に答える 3

2

コレクション.Votersのプロパティではなく、単一のUserオブジェクトのプロパティであると想定しています。その場合、1つの方法は次のとおりです。Users

db.Users.Sum(user => user.Voters.Count());

ただし、ユーザーが共有している有権者は二重にカウントされます。代わりに、個別のカウントが必要な場合

d.Users.SelectMany(user=>user.Voters).Distinct().Count();
于 2013-02-06T19:35:33.537 に答える
1

これは機能しますか?

db.Users.Voters != null ? db.Users.Voters.Count() : 0
于 2013-02-06T19:30:26.943 に答える
0

多対多から一致を抽出するには、SelectMany を使用する必要があります。

Users.SelectMany(x => x.Voters.Where(y => y.Users.Any(z => z.Id == x.Id))).Count()

于 2013-02-06T20:29:29.800 に答える