簡體   English   中英

使用Include和AsNoTracking時查詢中的N + 1選擇

[英]N+1 selection in query when use Include and AsNoTracking

我有下一個關系(僅作為示例)用戶0/1-*故事當我想獲取包含用戶的故事列表時,我進行下一個查詢。

context.Stories.Include(s => s.User).AsNoTracking().ToList()

我注意到ef向db發出了其他請求以獲取用戶(但這不應該,因為我使用include)。 沒有AsNoTracking(),一切都可以正常工作。

看起來存在可空關系的問題,因為不允許空的關系可以正常工作。

有人有類似的問題嗎? 在“允許為空”關系的情況下,可能是預期的行為。

您可以如下所示顯式關閉“延遲加載”:

db.Configuration.LazyLoadingEnabled = false;
db.Configuration.ProxyCreationEnabled = false;            

然后,EF將不會延遲加載任何其他實體。 您應該檢查是否沒有無意地延遲加載其他鏈接的實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM