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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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