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