2011-07-06 4 views
0

Entity Framework를 처음 사용했습니다. :-)
다음과 비슷한 메시지가 있습니다.

마스터 테이블
------------------------------ ------
ID : 이름 : Detail_id :
1 MasterOne 1
2 MasterTwo 2

Entity Framework - 관련 레코드에 대한 기준 지정

세부 사항 테이블 :
-------------- ----------------------
Id : 이름 : 종류 :
1 세부 사항 1
2 Detail_2 1
3 Detail_3 2

세부 정보 테이블에는 레코드 유형을 구분하는 플래그 ('유형')가 있습니다.

내 마스터의 목적은 다음과 같습니다

공용 클래스 마스터
{
공공 INT의 ID {얻을; 세트; }
public string Name {get; 세트; }
공개 가상 IEnumerable <Detail> 세부 사항 {get; 세트; }
은}

내 마스터 테이블 만 만 '1'의 국기와 그 세부 레코드를로드 할 필요가있다.

내 문제는 1.

이 가능 = 나는 그것이 단지 형 플래그와 그 상세 기록에 당겨야 반면 IEnumerable을 세부 속성, 모든 세부 기록에 끌어이다?
감사합니다. 당신은 시도 할 수

답변

0

을 가정은 EF 4.1

을 사용하고 있습니다.

using (var context = new MyContext()) 
{ 
    var master = context.Masters.Find(1); 

    context.Entry(master) 
     .Collection(m => m.Details) 
     .Query() 
     .Where(d => d.Type == 1) 
     .Load(); 

    //do stuff with master 

} 

이에 대한 자세한 내용은 Using DbContext in EF 4.1 Part 6: Loading Related Entities을 통해 갈 수 있습니다.

+0

아, 좋은 물건! 감사합니다. – user830665

0

: 당신이 다음과 같이 Details의 필터링 된 목록을로드 할 수 있습니다 단 1 Master 기록을로드하는 경우

var master = (ctx.Masters.Where(x => x.ID == 1)).FirstOrDefault(); 
var details = master.Details.Where(x=>x.Type == 1); 
관련 문제