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

Fra*_*pin 5 c# ado.net entity-framework

我想知道为什么AutoDetectChangesEnabledDbContext上的属性默认设置为false.

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

我的意思是,如果我知道什么时候能够检测到更改我的背景下,有为什么我不应该设置任何理由AutoDetectChangesEnabledfalse

phi*_*ady 4

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

var mycontext = new DemoContext();
var myEntity = myContent.Thinhymybobs.find(akey);
myEntity.PropX = newvalue;
mycontext.saveChnages();
Run Code Online (Sandbox Code Playgroud)

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

当对数据库进行“批量”操作时,性能问题通常是一个自然的想法。因此,我觉得想知道是否要关闭更改或什至使用跟踪是一个可能的问题。

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