是否有可能使用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