我需要返回以下选民的计数:
Users
与Voters
有很多关系。我想返回与Voters
相关的Users
计数。我已经尝试了这个:db.Users.Voters.Count()
但由于无法识别.Voters
而失败了。
有没有办法直接这样做?
答案 0 :(得分:2)
我假设.Voters
是单个User
对象的属性,而不是Users
集合的属性。在这种情况下,一种方法是:
db.Users.Sum(user => user.Voters.Count());
但这将重复计算用户共享的所有选民。如果您想要 distinct 计数,请使用
d.Users.SelectMany(user=>user.Voters).Distinct().Count();
答案 1 :(得分:1)
这会有用吗?
db.Users.Voters != null ? db.Users.Voters.Count() : 0
答案 2 :(得分:0)
您需要使用SelectMany将匹配从多个提取到多个。
Users.SelectMany(x => x.Voters.Where(y => y.Users.Any(z => z.Id == x.Id)))。Count()