在实体框架中有效检索公共汽车和清醒的乘客
>
>本文以有效的方式使用实体框架(EF)检索公共汽车及其清醒乘客的挑战,从而最大程度地减少数据库调用。 解决方案略有不同,取决于您的EF版本。
5:
ef core版本:
较旧的EF版本需要解决方法以实现所需的结果:
>禁用懒惰加载:关闭lazy Loading(),以防止访问相关实体时不必要的数据库命中。
Context.Configuration.LazyLoadingEnabled = false;
使用投影查询仅选择必要的数据:
<code class="language-csharp">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>
使用AutoMapper(可选)AwakePassengers
>映射:
重要考虑因素(预先核心5):
多到多的关系可能需要在投影后的手动乘客分配。
以上是我如何在实体框架中有效地检索公共汽车及其清醒的乘客?的详细内容。更多信息请关注PHP中文网其他相关文章!