안녕하세요 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)
Good post and this mail helped me alot in my college assignement. Say thank you you seeking your information.
ReplyDeleteI just linked this article on my facebook account. it’s an interesting read for everyone.
ReplyDelete