Используя Entity Framework и LINQ, как я могу достичь этого T SQL:
SELECT Children.ChildCount, Parent.*
FROM Parent
LEFT JOIN (SELECT ParentID, COUNT(ChildID) AS ChildCount FROM Child GROUP BY ParentID) AS Children
ON Parent.ID = Children.ParentID
Обратите внимание, что это лишь небольшая часть того, что уже является большим запросом LINQ, который включает другие связанные сущности, поэтому использование запроса Raw SQL не подходит. Также в родительской таблице около 20 столбцов, и я надеюсь, что не придется указывать каждый отдельно, чтобы код оставался поддерживаемым.
EDIT : Чтобы прояснить пару вещей, модель результат запроса (очень упрощенный) выглядит примерно так:
public class MyEntity
{
public int ID {get; set;}
public string Name {get; set;}
public int ChildCount {get; set;}
// many other properties here including related records
}
Итак, я пытаюсь включить ChildCount в результат запроса, чтобы он был включен в сущность EF .