2011-12-16 8 views

답변

4

다른 데이터 컨텍스트간에 조인을 수행 할 수 없습니다. linq-objects를 사용하여 조인을 수행해야합니다.

var crossJoin = from a in context.TableA.AsEnumerable() 
       from b in context2.TableB.AsEnumerable() 
       select new 
       { 
        a, 
        b 
       }; 
+0

이것은 단일 데이터 컨텍스트에 있습니다. 그 링크에서 언급 한 두 가지 다른 데이터 컨텍스트를 쿼리하지 않습니다. –

+0

@ 게이터 - 죄송합니다. 나는 대답을 업데이트했다 – Aducci

+0

아! 그게 전부 야 ... –

1

엔티티 프레임 워크 쿼리는 단일 컨텍스트의 경계를 넘을 수 없습니다. 교차 응답은 @Aducci가 자신의 응답에서 보여 주었던 것처럼 지원되지만 교차 컨텍스트 또는 교차 데이터베이스 linq-to-entities 쿼리는 지원되지 않습니다.

+0

이것은 "아니오"라는 질문에 대한 정답이지만 '실행 된'한 두 개의 서로 다른 객체 목록에 참여할 수 있습니다. 언급했듯이, 응용 프로그램에서 데이터베이스가 아니라 필터링이 고려됩니다. – hanzolo

0

EF Core 2.0 및 ASPNET Core 2.0 사용. 실제로이 참조를 사용하여 교차 조인 할 수 있습니다. NonEquijoin 예제를 주목하십시오.

https://docs.microsoft.com/en-us/dotnet/csharp/linq/perform-custom-join-operations 
관련 문제