2009-11-05 3 views
0

여기에 2 개의 테이블이 있습니다 : 경매 및 기사.Linq : 두 번째 테이블을 직접로드하는 방법?

1 경매 1 조항이 있습니다. 1 Aricle에는 x 개의 경매가 있습니다. "txtBla.Text = 경매 [0] .Article.Text;"

  using (APlattformDatabaseDataContext dc = new APlattformDatabaseDataContext()) 
     { 
      List<Auktion> auctionlist = (from a in dc.Auktion 
             where a.KäuferID == null 
             select a).ToList(); 
      return auctionlist; 
     } 

하지만 난을 원할 때 :

지금은 경매의 목록을로드 그것은로드되지 않습니다. 질문은 이유가 아닙니다 (DC가 닫혀 있기 때문에 allready로드되고로드 할 수 없다는 논리입니다). 그러나 DC를 열어 두지 않고 어떻게 해결할 수 있습니까?

+0

데이터베이스에 테이블이 관련되어 있습니까? – Lazarus

답변

2

당신은 다음을 수행 할 수 있습니다

DataLoadOptions options = new DataLoadOptions(); 
options.LoadWith<Auktion>(a => a.Article); 
dc.LoadOptions = options; 
+0

매우 쉽게, tahnks. 새로 개설 된 모든 DC에서이 작업을 수행해야합니까? – Kovu

+0

이렇게 컨텍스트를 인스턴스화하고 있기 때문에 컨텍스트를 인스턴스화 할 때마다 DataLoadOptions를 설정해야합니다. 코드가 한 곳에서만 존재하도록 인스턴스화를 DLO가 포함 된 도우미 함수로 추상화 할 수 있습니다. – Lazarus

0

당신이 열망로드하려면 당신이 그렇게 같은 DataContext.LoadOptions 속성을 사용해야 같은 협회 ...

using (APlattformDatabaseDataContext dc = new APlattformDatabaseDataContext()) 
{ 
    var dlo = new DataLoadOptions(); 
    options.LoadWith<Auktion>(o => o.Article); 
    dc.LoadOptions = dlo; 

    List<Auktion> auctionlist = (from a in dc.Auktion 
           where a.KäuferID == null 
           select a).ToList(); 
    return auctionlist; 
} 

그런 식으로 기사 것 Auktion 오브젝트가 데이터베이스에서 검색 될 때로드됩니다.

관련 문제