[英]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.