以下の有権者の数を返す必要があります。
Usersは と多対多の関係にありVotersます。Votersに関連するカウントを返したいと思いUsersます。私はこれを試しました:db.Users.Voters.Count()しかし、それが認識しないので惨めに失敗します.Voters。
これを直接行う方法はありますか?
コレクション.Votersのプロパティではなく、単一のUserオブジェクトのプロパティであると想定しています。その場合、1つの方法は次のとおりです。Users
db.Users.Sum(user => user.Voters.Count());
ただし、ユーザーが共有している有権者は二重にカウントされます。代わりに、個別のカウントが必要な場合
d.Users.SelectMany(user=>user.Voters).Distinct().Count();
これは機能しますか?
db.Users.Voters != null ? db.Users.Voters.Count() : 0
多対多から一致を抽出するには、SelectMany を使用する必要があります。
Users.SelectMany(x => x.Voters.Where(y => y.Users.Any(z => z.Id == x.Id))).Count()