如何按某些条件使用实体框架过滤子对象? 例如:我有一个带有ChildObjects,CompanyChilds的对象公司。 CompanyChilds有财产活跃。我希望公司获得具有确切ID和具有活动等于真的子对象。
我试过这个:
dbContext.Company.Include("ChildCompany").Where(x => x.Id == Id
&& x.ChildCompany.Any(y => y.Active == true));
欢迎任何帮助:)
答案 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);