2011-07-01 3 views
0

나는 다음과 같은 NHibernate에 LINQ 쿼리를 가지고 있고 그것은)는 .Fetch (없이 null 참조 예외.Fetch()가 null 참조 예외를 throw하는 이유는 무엇입니까?

promotions = (from a in session.Query<Application>() 
          from ap in a.Promotions 
          where a.Id == applicationId 
          && ap.EndDate >= DateTime.Now && ap.StartDate <= DateTime.Now 
          select ap).Fetch(ap => ap.LandingPage).ToList(); 

에게 같은 질문을 던졌습니다 잘 작동합니다. 나는 같은 이드를 두 번 통과 시키므로 데이터 문제는 아닙니다.

이 버그가 있거나 의도적으로 설계된 것입니까? 예외를 throw하지 않도록하려면 어떻게해야합니까?

답변

0

선언 후에 즉시 .Fetch (ap => ap.LandingPage)를 이동하면 결과가 변경됩니까?

from ap in a.Promotions.Fetch(ap => ap.LandingPage) 
+0

프로모션 권리, 따라서 당신은 그가 다른 유형의 자식 테이블에서 항목을 선택하는 것을 깨닫는다 –

0
from a in session.Query<Application>().Fetch(ap => ap.LandingPage) 
//the rest of your code 
+0

컴파일되지 않습니다 된 IQueryable의 확장 방법 형은 ICollection이며 가져 오기? 이 경우, ap.Promotions에 있기 때문에 param ap에 * "LandingPage"라는 하위 항목이 없을 것입니다. –

관련 문제