LINQ의 왼쪽 외부 조인 확장 방법 사용
LINQ에서 외부 조인을 수행하려면 Join
및 DefaultIfEmpty
방법을 조합하여 수행할 수 있습니다. 그러나 코드 가독성과 단순성을 향상시키기 위해 확장 메서드는 이러한 작업을 표현하는 보다 편리한 방법을 제공합니다.
확장 방법을 사용하여 왼쪽 외부 조인을 수행하려면 다음 구문을 고려하세요.
<code class="language-csharp">Foo.GroupJoin(Bar, f => f.Foo_Id, b => b.Foo_Id, (f,b) => ...) .Select(...)</code>
이 구문에서:
GroupJoin
키 선택기에 따라 첫 번째 시퀀스(Foo)의 요소를 그룹화하고 호환 가능한 키 선택기를 사용하여 두 번째 시퀀스(Bar)와 결합합니다. SelectMany
은 그룹화된 요소를 평면화하고 첫 번째 시퀀스와 결합하는 데 사용됩니다. DefaultIfEmpty
은 두 번째 시퀀스에 일치하는 요소가 없는 경우 기본값이 반환되도록 하는 데 사용됩니다. 왼쪽 외부 조인을 완료하기 위한 남은 단계는 결합된 요소에 대해 선택을 수행하는 것입니다. 이 경우 Select
메서드를 사용하여 각 튜플의 원하는 속성을 투영할 수 있습니다.
예를 들어 Foo_Id 열을 기반으로 Foo와 Bar 사이의 왼쪽 외부 조인을 표현하려면 다음 코드를 사용할 수 있습니다.
<code class="language-csharp">var qry = Foo.GroupJoin( Bar, foo => foo.Foo_Id, bar => bar.Foo_Id, (x,y) => new { Foo = x, Bars = y }) .SelectMany( x => x.Bars.DefaultIfEmpty(), (x,y) => new { Foo=x.Foo, Bar=y});</code>
이 코드는 익명 유형의 열거 가능한 컬렉션을 생성합니다. 여기서 각 유형은 Foo 테이블의 Foo 속성과 Bar 테이블의 Bar 속성을 포함합니다(또는 일치하는 막대가 없는 경우 null).
위 내용은 확장 방법은 LINQ에서 왼쪽 외부 결합을 어떻게 단순화 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!