2010-08-10 1 views
4

아무도 다음에 도움이 될 수 있습니까? 하나의 LINQ 요청에서 두 가지 다른 데이터 컨텍스트를 어떻게 사용할 수 있습니까?하나의 LINQ 요청에서 두 개의 서로 다른 데이터 컨텍스트를 어떻게 사용합니까?

using (var db = new DataMapDataContext(Connection)) 
     {  
      using (var dbAdd = new DataMapDataContext(ConnectionAdd)) 
      { 
       return (from i in dbAdd.ITEMs 
         join p in db.U_OTT_PINs on i.ITEMNO equals p.PIN_CODE 
         where p.PIN_TYPE == Utils.PinItem 
         select ... 
      } 
     } 

가능합니까?

UPDATE :

내 문제를 해결

가 아닌 다른 데이터 컨텍스트와 :

 var listPinnedItems = new List<string>(); 
     using (var db = new DataMapDataContext(Connection)) 
     { 
      listPinnedItems = (from lpi in db.U_OTT_PINs 
           where lpi.PIN_TYPE == Utils.PinItem 
           select lpi.PIN_CODE).ToList(); 
     } 

     using (var dbAdd = new DataMapDataContext(ConnectionAdd)) 
     { 
      return (from i in dbAdd.ITEMs 
        where listPinnedItems.Contains(i.ITEMNO) 
        ... 
+0

중복 질문이 있으십니까? http://stackoverflow.com/questions/352949/linq-across-multiple-databases –

답변

3

난 그렇게 생각하지 않는다 -이 두 개의 서로 다른 컨텍스트가 동일한 데이터베이스에 다른 트랜잭션에 관여 할 수 심지어 완전히 다른 데이터베이스 인스턴스와 대화 할 수도 있습니다. 이 둘을 통해 SQL을 어떻게 구성 할 수 있습니까?

당신이하려는 것을 설명 할 수 있다면, 우리는 당신을 더 많이 도울 수 있습니다.

+0

불행히도 완전히 다른 데이터베이스 인스턴스입니다. – misho

+0

@misho : LINQ to SQL이 도움이 될 것 같지 않습니다. –

0

이 두 datacontexts를 사용하는 것이 가능하지만, 동시에 두에서 데이터베이스 쿼리를 할 수 없습니다. 그러나 두 쿼리에 모두 관련된 데이터를 가져올 수 있으며 일반 linq 문 (linq2objects)을 사용하여 개체를 쿼리 할 수 ​​있습니다.

0

"무엇을 달성하려고합니까?"이라고 묻지 않고 대답해야하는 질문 중 하나입니다.

두 데이터 인터페이스 모두 동일한 데이터베이스 또는 다른 데이터베이스를 가리 킵니까?

두 데이터베이스가 동일한 데이터베이스에 연결되어 있고 두 개체가 분리되어있는 유일한 이유는 하나의 DC를 사용하여 다른 datacontext에 '속한'테이블을 쿼리 할 수 ​​있다는 것입니다. GetTable을 사용하면 L2S가 클래스 및 멤버 특성을 기반으로 매핑을 해결합니다.

동일한 서버의 다른 데이터베이스와 두 번째 DB에서 읽을 수있는 권한으로 DB 중 하나에 연결하는 로그인을 가리키는 경우 한 데이터베이스의 테이블을 다른 데이터베이스를 기반으로하는 datacontext에 포함 할 수 있습니다 .dbml 파일의 접두사로 데이터베이스 이름을 추가하기 만하면됩니다.

관련 문제