LINQ to SQL: 왼쪽 조인, 그룹화 및 개수
이 예에서는 특정 SQL 쿼리의 기능을 미러링하여 LINQ to SQL을 사용하여 왼쪽 조인, 그룹화 기준 및 계산 작업을 수행하는 방법을 보여줍니다.
SQL 쿼리:
다음 SQL 쿼리는 LINQ 번역의 대상으로 사용됩니다.
<code class="language-sql">SELECT p.ParentId, COUNT(c.ChildId) FROM ParentTable p LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentId GROUP BY p.ParentId</code>
이 쿼리는 ParentTable
과 ChildTable
을 조인하고 각 부모에 대한 하위 레코드를 계산하며 부모에 자녀가 없는 경우를 처리합니다(LEFT OUTER JOIN
사용).
LINQ to SQL과 동등한 기능:
동등한 LINQ to SQL 쿼리는 join
절, 왼쪽 조인 동작에 DefaultIfEmpty()
, group by
및 null이 아닌 하위 ID만 계산하는 조건자가 있는 Count()
메서드를 사용합니다.
<code class="language-csharp">var query = 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, ChildCount = grouped.Count(t => t.ChildId != null) };</code>
이 LINQ 쿼리는 SQL 쿼리와 동일한 결과를 얻습니다. into j1
및 from j2 in j1.DefaultIfEmpty()
조합은 왼쪽 외부 조인을 올바르게 구현합니다. group by
절은 결과를 ParentId
별로 그룹화하고 Count()
메서드는 조건(t => t.ChildId != null
)을 사용하여 기존 하위 레코드만 계산되도록 합니다. 익명 유형 new { ParentId, ChildCount }
이 최종 결과 세트를 생성합니다.
이는 SQL 쿼리의 논리를 읽기 쉽고 유지 관리가 가능한 LINQ 식으로 명확하고 간결하게 변환합니다.
위 내용은 LINQ to SQL을 사용하여 왼쪽 조인, 그룹화 기준 및 계산을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!