在實體框架中有效檢索公共汽車和清醒的乘客
>
>本文以有效的方式使用實體框架(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中文網其他相關文章!