1
我有一個查詢:實體框架分組柱從加入
select VisitLines.ProcedureId, COUNT(DISTINCT VisitLines.VisitId) as nt
from Visits
LEFT JOIN VisitLines ON Visits.Id = VisitLines.VisitId
WHERE Visits.VisitStatusId = 1 AND Visits.IsActive = 1 AND VisitLines.IsActive = 1
GROUP BY VisitLines.ProcedureId
主要問題:是否存在能力分組,以通過列從加入使用LINQ?我想知道如何使用'收藏'欄來做到這一點。
是否有可能強制EF生成COUNT(DISTINCT列)? IQueryable.GroupBy.Select(X => x.Select(N => n.Number).Distinct()。COUNT())生成具有很少的子查詢,其慢得多然後COUNT(DISTINCT)
約2: 我沒有找到如何生成COUNT(DISTINCT列),但找到了如何生成更有效的查詢然後使用linq的方式:IQlessable.GroupBy(x => new { x.Id,x.Number})。GroupBy(x => x.Key.Id) .Select(x => new {x.Key,Count = x.Count}) 它生成GroupBy只有一個子查詢' select distinct「,這比從標準linq方法Dictinct()。Count()中查詢更有效,但我仍然想知道是否可以生成sql COUNT(DISTINCT列) – Itan