LINQ — левое соединение, группировка и подсчетC#

Место общения программистов C#
Anonymous
LINQ — левое соединение, группировка и подсчет

Сообщение Anonymous »

Предположим, у меня есть такой SQL:

Код: Выделить всё

SELECT p.ParentId, COUNT(c.ChildId)
FROM ParentTable p
LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentId
GROUP BY p.ParentId
Как мне перевести это в LINQ to SQL? Я застрял на COUNT(c.ChildId), сгенерированный SQL всегда выводит COUNT(*). Вот что у меня получилось:

Код: Выделить всё

from p in context.ParentTable
join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1
from j2 in j1.DefaultIfEmpty()
group j2 by p.ParentId into grouped
select new { ParentId = grouped.Key, Count = grouped.Count() }
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/695 ... -and-count

Вернуться в «C#»