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