优化EF查询:与Include
的过滤相关实体>本文解决了在实体框架(EF)查询中使用AWhere
子句有效检索相关实体的挑战。 目的是避免多次数据库旅行。
场景涉及两个实体:Bus
>和Person
,Bus
具有Person
的集合导航属性。目的是要检索所有驾驶的公共汽车,只有那些醒着的乘客。
子句,禁用懒惰的加载和显式加载相关的实体。Where
<code class="language-csharp">Context.Configuration.LazyLoadingEnabled = false; var buses = Context.Busses.Where(b => b.IsDriving) .Select(b => new { Bus = b, AwakePassengers = b.Passengers.Where(p => p.Awake) }) .AsEnumerable() .Select(x => x.Bus) .ToList();</code>此代码首先在单个数据库查询中检索驾驶总线及其清醒乘客。
调用将结果实现在内存中,从而允许EF正确建立关系。 最后,仅选择AsEnumerable()
对象并返回。Bus
>
重要的考虑因素:
以上是我如何在EF查询中有效地将与Where子句的相关实体纳入其中?的详细内容。更多信息请关注PHP中文网其他相关文章!