[英]When to disable proxy generation and use AsNoTracking?
在我的WebApi項目中,我使用EF6,遵循Uow和通用存儲庫模式,我還將模型映射到dto,反之亦然。
當前,我在創建dbContext
時設置以下dbContext
:
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
從數據庫中獲取數據時,我也使用AsNoTracking
。
更新數據庫時,我在處理小實體時(即沒有關系)直接使用dbContext附加實體。 我將GraphDiff用於復雜實體(即有關系)。
在啟用代理和跟蹤時,甚至禁用它們時,我注意到發送到數據庫的SQL語句包括所有表的列,而不是僅包含已實際更改的列。
但是,GraphDiff在將更改保存到數據庫之前再次加載實體。 在這種情況下,SQL語句也包含所有列。 這是正確的行為嗎?
因此,在我的情況下,在處理分離的實體時禁用代理和跟蹤是否安全?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.