DbContext/DbSet/DbQuery를 사용하여 조건부로 열심히 탐색 속성을로드 할 수 있습니까? 아래 쿼리는 특정 역할을 가진 당사자를 반환합니다.EF 코드 처음 4.3 조건부로 탐색 속성로드
필요한 항목은 추가로 일치하는 역할 만 추가하는 것입니다.
첫 번째 시도는
var peopleWithRole = (from p in Party
from r in p.Roles
where r.RoleTypeId == 1
select p).Include(_ => _.Roles);
이 모든 역할을로드하고 당신이 그것을 보면 일단 이유는 명백하다.
나는 몇 가지 시도했다. 괜찮을 것 같은 객체 질의를 캐스팅하고 생성해야만한다면 어떻게 될지 알 수 없습니다.
두 번째 시도는
var objectContext = ((IObjectContextAdapter)this).ObjectContext;
var set = objectContext.CreateObjectSet<Party>();
var result = (from p in set.Where("it.Roles.RoleTypeId == 1")
select p)
;
result.Dump();
반복자과 같이 사용할 수 없습니다?
아이디어가 있으십니까?
http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx – Jim