สมมติว่าฉันมี 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 เป็น 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() }
ขอบคุณ!