Linq의 왼쪽 조인에 관해서는 이미 많은 질문이 있습니다. 그리고 내가 바라본 것들은 원하는 끝을 얻기 위해 join
키워드를 사용합니다.Linq에서 왼쪽 join?
이것은 나에게 의미가 없습니다. 테이블 Customer
과 Invoice
이 CustomerID
의 외래 키로 연결되어 있고 Invoice
에 있다고 가정 해 봅시다. 이제 고객 정보와 모든 인보이스가 포함 된 보고서를 실행하고 싶습니다. SQL은 다음과 같습니다 나는 SO에 대한 답변의 본 적이 어떤 사람들이 주로 제안하는
select c.*, i.*
from Customer c
left join Invoice i on c.ID = i.CustomerID
에서 :
var q = from c in Customers
join i in Invoices.DefaultIfEmpty() on c.ID equals i.CustomerID
select new { c, i };
난 정말이 유일한 방법이 될 수있는 방법을 이해하지 않습니다. Customer
과 Invoice
사이의 관계는 이미 LinqToSQL 클래스에 의해 정의됩니다. join
절에 대해 왜 반복해야합니까? 내부 결합을 원한다면 간단하게 :
var q = from c in Customers
from i in c.Invoices
select new { c, i };
조인 된 필드를 지정하지 않아도됩니다!
var q = from c in Customers
from i in c.Invoices.DefaultIfEmpty()
select new { c, i };
을하지만 내부 조인 것처럼 그것은 단지 나에게 같은 결과를 주었다
나는 시도했다.이렇게하는 더 좋은 방법은 없을까요?
글쎄, 나를 무너 뜨리는 - 당신 말이 맞아! 자, 내가 왜 이것이 효과가 없다고 생각 했는가 ...? OK, 나는 겸손하게 물러났다 ...이 질문은 내 자신의 오해에서 비롯된 것이다. 감사! :) –