Я пробовал разные способы написания запросов, включающих «группировать по» и «count ()», используя Entity Framework Core и LINQ. Но созданный SQL просто возвращает все записи, а затем в памяти выполняется «group by» и «count ()».
В настоящее время я пытаюсь написать запрос, эквивалентный следующему SQL:
select
e.EngagementId,
e.Name,
c.ClientName,
count(distinct ed.EngagementDocumentId) as DocumentCount,
count(distinct es.EngagementSurveyId) as SurveyCount
from Engagement e
inner join Client c on c.ClientId = e.ClientId
left outer join EngagementDocument ed on ed.EngagementId = e.EngagementId
left outer join EngagementSurvey es on es.EngagementId = e.EngagementId
group by e.EngagementId, e.Name, c.ClientName
Мой вопрос: как я могу написать запрос, который генерирует похожие SQL?