子对象在EF中过滤

时间:2011-04-11 13:15:26

标签: .net linq entity-framework

如何按某些条件使用实体框架过滤子对象? 例如:我有一个带有ChildObjects,CompanyChilds的对象公司。 CompanyChilds有财产活跃。我希望公司获得具有确切ID和具有活动等于真的子对象。

我试过这个:

dbContext.Company.Include("ChildCompany").Where(x => x.Id == Id 
&& x.ChildCompany.Any(y => y.Active == true));

欢迎任何帮助:)

2 个答案:

答案 0 :(得分:2)

有一种方法可以在Code First API中过滤子记录 - 请参阅此帖子: http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx 请参阅“显式加载相关实体时应用过滤器”

答案 1 :(得分:0)

假设你基本上想要来自母公司的活跃孩子......

var comp = dbContext.Company.Single(comp=>comp.Id == id);
var children = comp.ChildCompany.Where(cc=>cc.Active == true);

但是,您可以直接查询孩子..

var children = dbContext.Company
         .Where(comp=>comp.ParentId == id && comp.Active == true);