計數我需要返回計數以下選民:LINQ獲取有關相關實體(多對多)
Users
有許多與Voters
一對多的關係。我想返回Voters
與Users
有關的計數。我試過這個:db.Users.Voters.Count()
,但是因爲它不識別.Voters
而慘不忍睹。
有什麼辦法直接做到這一點?
計數我需要返回計數以下選民:LINQ獲取有關相關實體(多對多)
Users
有許多與Voters
一對多的關係。我想返回Voters
與Users
有關的計數。我試過這個: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()