c# - 为什么默认情况下 AutoDetectChangesEnabled 不设置为 false?

标签 c# entity-framework ado.net

我想知道为什么 DbContext 上的 AutoDetectChangesEnabled 属性默认设置为 false。

我想批量插入到我的上下文中,您可能知道将自动检测设置为 false 会带来更好的性能。

我的意思是,如果我知道何时检测上下文的变化,是否有任何理由不应该将 AutoDetectChangesEnabled 设置为 false

最佳答案

我认为他们可能希望开箱即用的更常见且非常有用的行为。

var mycontext = new DemoContext();
var myEntity = myContent.Thinhymybobs.find(akey);
myEntity.PropX = newvalue;
mycontext.saveChnages();

发送到数据库的更新是增量感知的,相应地使用更新集语句。 所以这对数据库很友好。

在数据库上进行“批量”操作时,性能问题通常是自然而然的想法。所以想知道关闭更改或者甚至使用跟踪是我觉得一个可能的问题。

这篇文章可能会让您感兴趣。条目的状态。 http://msdn.microsoft.com/en-us/data/jj592676.aspx

关于c# - 为什么默认情况下 AutoDetectChangesEnabled 不设置为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14945176/

相关文章:

ado.net - 当 TransactionScope 升级到 DTC 时,.net 4.0 中的场景发生了哪些变化?

c# - 如何使用列表对象中 3 个属性的搜索条件加快 List<> 上的此 linq 查询

c# - 对 IIS 的单个 Web 请求是否停留在单个线程上?

c# - 生成每周日期

c# Entity Framework 选择派生子项

c# - 将对象列表传递给 SQL Server 存储过程并使用 asp.net core 插入记录

c# - 如何将任务存储在字典中以便稍后在 C# 中执行

sql-server - 将 SQL Server 命名参数与 ExecuteStoreQuery 和 ExecuteStoreCommand 结合使用

c# - 在 MVC 3 中,我无法让 @Html.DisplayFor 呈现格式化字符串

c# - 对与指定绑定(bind)约束匹配的类型调用构造函数引发异常