是否有可能使用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 2012-05-10 05:28:14