LINQ to Entities: Join
및 GroupJoin
LINQ to Entities는 관계형 데이터 검색을 위해 Join
및 GroupJoin
라는 두 가지 주요 연산자를 제공합니다. Join
은 SQL의 INNER JOIN
을 미러링하여 데이터 세트 간에 일대일 매핑을 생성합니다. 반대로 GroupJoin
은 OUTER JOIN과 유사하게 더 완전한 결과 세트를 제공합니다.
GroupJoin
자세히 살펴보기
Join
과 달리 GroupJoin
는 일련의 상위 요소를 생성하며, 각 요소는 연관된 하위 요소 컬렉션과 쌍을 이룹니다. 이는 부모-자식 구조를 유지하는 것이 필수적일 때 매우 중요합니다.
사용 시기 GroupJoin
GroupJoin
다음과 같은 상황에 탁월합니다.
평면화된 외부 조인 생성: GroupJoin
을 DefaultIfEmpty()
과 결합하여 중첩 그룹을 표 형식으로 변환합니다.
요소 순서 유지: 순서가 지정된 상위 요소와 관련된 시나리오(예: ID 시퀀스를 기반으로 선택)에서 GroupJoin
는 해당 순서를 유지할 수 있습니다.
C#으로 구현
GroupJoin
의 C# 구문은 Join
과 다릅니다.
<code class="language-csharp">from p in Parent join c in Child on p.Id equals c.Id into g select new { Parent = p, Children = g }</code>
예시
두 가지 샘플 목록을 살펴보겠습니다.
<code>Id Value 1 A 2 B 3 C Id ChildValue 1 a1 1 a2 1 a3 2 b1 2 b2</code>
사용 Join
:
<code>Value ChildValue A a1 A a2 A a3 B b1 B b2</code>
사용 GroupJoin
:
<code>Value ChildValues A [a1, a2, a3] B [b1, b2] C []</code>
위 내용은 LINQ-to-Entities의 Join과 GroupJoin: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!