У меня есть следующий запрос:Entity Framework группировка по столбцам из присоединиться
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.Select (п => n.Number) .distinct(). Count()) генерирует запрос с несколько подзапросов, которые гораздо медленнее, чем COUNT (DISTINCT)
около 2: Я не нашел способ генерации столбца COUNT (DISTINCT), но нашел способ генерации более эффективного запроса, а затем используя linq: IQuaryable.GroupBy (x => new { x.Id, x.Number}). GroupBy (x => x.Key.Id) . Выберите (x => new {x.Key, Count = x.Count}) он генерирует GroupBy только с одним подзапросом ' select different ', который более эффективен, чем запрос стандартного linq-подхода Dictinct(). Count(). Но я все еще хочу знать, можно ли генерировать sql COUNT (столбец DISTINCT) – Itan