優化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中文網其他相關文章!