EF 中的子对象过滤器

发布于 2024-10-31 13:51:01 字数 321 浏览 1 评论 0原文

如何通过某些条件使用实体框架过滤子对象? 例如:我有对象 Company 和 ChildObjects,CompanyChilds。 CompanyChilds 拥有活跃的财产。我想要获得具有准确 ID 的公司和具有 active 等于 true 的子对象。

我尝试过这个:

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

欢迎任何帮助:)

How can I filter child objects with entity framework by some criteria?
For example: I have object Company with ChildObjects, CompanyChilds. CompanyChilds have property active. I want to get Company with exact ID and Child Objects with active equals true.

I tried with this:

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

Any help is welcome :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

濫情▎り 2024-11-07 13:51:01

有一种方法可以在 Code First API 中过滤子记录 - 请参阅这篇文章:

There is a way to filter child records in the Code First API -- see this post:
http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx
See "Applying filters when explicitly loading related entities"

闻呓 2024-11-07 13:51:01

假设您基本上想要来自母公司的活跃子级。

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);

Presuming that you basically want the active children from the parent company..

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

However, you may be able to query the children directly..

var children = dbContext.Company
         .Where(comp=>comp.ParentId == id && comp.Active == true);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文