2010-06-11 2 views
0

VS 개체 데이터 모델 다이어그램 도구를 통해 설정 한 두 개의 테이블이 있습니다. 바로 바깥 쪽 조인을하려고하는데 두 번째 테이블에서 결과를 반환하지 않습니다.L2E에서 올바른 외부 조인을 얻으려면 어떻게해야합니까?

다이어그램 도구에서 0..1 -> 관계를 설정했습니다.

Linq-To-Entities 쿼리를 실행할 때 기본적으로 INNER JOIN이 기본값으로 사용됩니다. 엔티티에 대한 이해에서 VS를 사용하여 관계를 설정하면 테이블을 조인 할 때 자동으로 조인 구문을 이해할 수 있습니다. 그렇게하지 않는 것 같습니다.

EF v1 (Linq-to-Sql 제외)을 사용하고 있습니다.

쿼리 나는 실행 해요 :

from s in SomeTable 
join t in SomeOtherTable on s.ID equals t.ID 
select new { s.MyFieldName, t.MyOtherFieldName } 
+0

당신이 정확히 어떤 쿼리를 실행? 또한 왼쪽 외부 조인을 수행하고 오른쪽/왼쪽으로 스왑합니다. –

+0

전환을 시도하고 같은 결과를 얻었습니다. 나는 또한 LINQPad를 사용하고있다. 널 (null)을 걸러 낸다고 생각하지 마십시오. – Dan

답변

1

DefaultIfEmpty()Entity Framework 4에 도움이 될 것입니다

from s in SomeTable 
join t in SomeOtherTable on s.ID equals t.ID into myTemps 
from temp in myTemps.DefaultIfEmpty() 
select new { s.MyFieldName, temp.MyOtherFieldName } 
+0

내가 본 문서에 따르면 DefaultIfEmpty는 L2S에서만 지원됩니다. – Dan

+0

@ Dan : 실제로 ... 내 샘플 및 답변은 ​​EF4를 사용하여 개발되었습니다. 죄송합니다. EF1을 지정 했으니 까. 이 답변은 귀하의 질문에 직접적으로 답변하지는 않지만 앞으로 EF4 +를 사용하여 다른 사람에게 도움이되기를 바랍니다. –

관련 문제