以下の有権者の数を返す必要があります。
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()