안녕하세요 LiveDK(이동규) 입니다.

 

Linq to SQL을 사용하는중 서로다른 Database 서버에서 DataContext를 가져와 Join 을 하게될 경우가 생겼었습니다. 기존처럼(코드.1) 단순히 Join 을 해서는 아래와 같은 에러가(에러.1) 발생을 하게됩니다.

 

DBDBDataContext DC_ONE = new DBDBDataContext();

LotteDBDataContext DC_TWO = new LotteDBDataContext();

 

var result = from A in DC_ONE.MovieStatisticsDays

            join B in DC_TWO.tbMovieInfos on A.MovieInfoCode equals B.contentsCode

            select B;

 

dataGridView1.DataSource = result;

dataGridView1.Refresh();

(코드.1)

 

한글 : 쿼리에 다른 데이터 컨텍스트에서 정의된 항목에 대한 참조가 포함되어 있습니다.

영문 : The query contains references to items defined on a different data context

(에러.1)

 

Linq 에서 서로다른 Data Context 를 함께 사용하지 못하는듯 합니다. 하지만 아래와 같이(코드.2) 처럼 각각 Data Context를 따로 실행하고 ToList() 를 사용하여 로컬 컴퓨터에서 실행하게 되면 두개의 DataContext를 사용할 수 있습니다. (성능은 장담 못드리네요ㅎ)

 

DBDBDataContext DC_ONE = new DBDBDataContext();

LotteDBDataContext DC_TWO = new LotteDBDataContext();

 

var one = (from A in DC_ONE.MovieStatisticsDays select A).ToList();

 

var two = (from B in DC_TWO.tbMovieInfos select B).ToList();

 

var result = (from A in one

              join B in two on A.MovieInfoCode equals B.contentsCode

              select B).ToList();

(코드.2)

 

 

Posted by LiveDK

댓글을 달아 주세요

  1. WP Themes 2010.08.05 06:48 신고  댓글주소  수정/삭제  댓글쓰기

    Good post and this mail helped me alot in my college assignement. Say thank you you seeking your information.

  2. Polworunt 2010.09.16 23:06 신고  댓글주소  수정/삭제  댓글쓰기

    I just linked this article on my facebook account. it’s an interesting read for everyone.