2013-02-06 56 views
0

計數我需要返回計數以下選民:LINQ獲取有關相關實體(多對多)

Users有許多與Voters一對多的關係。我想返回VotersUsers有關的計數。我試過這個:db.Users.Voters.Count(),但是因爲它不識別.Voters而慘不忍睹。

有什麼辦法直接做到這一點?

回答

2

我假設.Voters是單User對象的屬性,而不是Users收集的屬性。在這種情況下,一種方法是:

db.Users.Sum(user => user.Voters.Count()); 

但是,這將重複計算任何用戶共享的選民。相反,如果你想有一個不同計數使用

d.Users.SelectMany(user=>user.Voters).Distinct().Count(); 
1

這項工作?

db.Users.Voters != null ? db.Users.Voters.Count() : 0 
0

您需要使用到的SelectMany比賽提取多對多。

Users.SelectMany(X => x.Voters.Where(Y => y.Users.Any(Z => z.Id == x.Id)))。COUNT()

相關問題