是否可以使用 DbContext / DbSet / DbQuery 有条件地急切加载导航属性。下面的查询将返回具有特定角色的各方。
我需要的是另外只加载匹配的角色。
第一次尝试
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();
迭代器不能这样用?
有任何想法吗?