[英]LINQ Getting count on related entities (many to many)
我需要歸還以下選民的人數:
Users
與Voters
之間有很多關系。 我想退還與Users
有關的Voters
人數。 我已經試過了: db.Users.Voters.Count()
但由於無法識別.Voters
而失敗了。
有什么辦法可以直接做到這一點?
我假設.Voters
是單個User
對象的屬性,而不是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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.