2010-08-19 8 views
0

나는 내 엔터티에 하위 속성의 하위 속성이 있습니다. 나는 ChildC을 철수 할 수 있도록하고 싶습니다,LINQ - 하위 속성의 하위 속성 포함

myManager.Find(x => x.Id == id, x.ChildB); 

을하지만 :

List<T> Find(Expression<Func<T, bool>> where, 
      params Expression<Func<T, object>>[] toInclude); 

나는 일반적으로 단지 첫 번째 자식 속성을로드하는 방법이 작업을 수행하는 것입니다 : 나는 같은 가져 오기 방법을 내 ChildB 속성의 자식 인 속성

제공된 서명으로이 작업을 수행 할 수 있습니까? 나는 정상적으로 할 수있는 것을 안다. Include ("ChildB.ChildC").

편집 : 요청

using(MyContext context = new MyContext()) 
{ 
    ObjectQuery<T> objectQuery = (ObjectQuery<T>)context.CreateObjectSet<T>(); 
    foreach(var include in toInclude) 
    { 
     objectQuery = objectQuery.Include(include); 
    } 

    return objectQuery.Where<T>(where); 
} 
+0

브랜든 - 당신이 목록 찾기() 메소드 스텁의 구현을 포함 또한 수있는 기회 ?? 이 점을 고려할 때, 나는 그 문제를 예의 바른 태도로 만들 수 있다고 확신한다. 감사합니다 ... –

+0

요청 당 코드가 추가되었습니다. – Brandon

+0

ok -gotcha, 그것을 살펴보고 내가 '부가가치'를 줄 수 있는지 알아 봅니다. –

답변

0

당 추가 된 코드는 LINQ - 투 - SQL에 대해 이야기하는 경우에, 당신은 그것에 대하여 어떤 쿼리를 실행하기 전에의 DataContext를 구성합니다. 같은

뭔가 :

var options = new DataLoadOptions(); 
options.LoadWith<ChildB>(b => b.ChildC); 
dataContext.LoadOptions = options; 
+0

LINQ-to-Entities를하고 있는데, 개발자가 원하는 탐색 속성 목록을 전달할 수 있기를 바랬습니다. 컨텍스트를 다룰 필요없이 포함 할 수 있습니다. – Brandon

관련 문제