栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在实体框架中过滤“包含”实体?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在实体框架中过滤“包含”实体?

有两种方法可以过滤包含实体。

  • 使用投影(请参阅@Eldho答案)
  • 使用第三方库

免责声明 :我是Entity framework Plus项目的所有者

EF +查询IncludeFilter可以轻松过滤包含的实体。

context.Entry(hotel)       .Collection(x => x.Rooms)       .Query()       .IncludeFilter(y => y.Reservations      .Where(z => z is ExecutiveSuite && z.Reservations.Any())       .Load();

在引擎盖下,图书馆正好进行投影。

Wiki:EF +查询包含过滤器

编辑 :回答子问题

您几乎做到了。房间已包括在内并已过滤,但您未包括预订。

var hotel = context.Hotels    // Include only executive suite with a reservation    .IncludeFilter(x => x.Rooms.Where(y => y is ExecutiveSuite && y.Reservations.Any()))    // Include only reservation from executive suite    .IncludeFilter(x => x.Rooms.Where(y => y is ExecutiveSuite).Select(z => z.Reservations))    .First();

编辑:答案评论

我们如何通过包含过滤器包含多级属性

您可以通过指定每个路径(每个IncludeFilter一个)来包含多级

因此

qry.Include("Rooms.Hotel")
成为:

qry.IncludeFilter(x => x.Rooms)   .IncludeFilter(x => x.Rooms.Select(y => y.Hotel))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411851.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号