有没有办法控制SqlEntityConnection上的AutoDetectChanges?

Joe*_*ler 4 f# entity-framework type-providers

本文提供了一些证据,表明在插入大量实体时,关闭Entity Framework数据上下文中的AutoDetectChanges可以显着提高性能.

context.Configuration.AutoDetectChangesEnabled = false;
Run Code Online (Sandbox Code Playgroud)

但是,SqlEntityConnection类型提供程序提供的DataContext 似乎没有提供任何方法来控制此设置.

没有context.Configuration财产或context.DataContext.Configuration财产.有一个,context.DataContext.ContextOptions但它甚至没有什么相似之处AutoDetectChangesEnabled.

DataContext类型提供程序上下文的属性是类型System.Data.Objects.ObjectContext.有谁知道从那里影响这个特定环境的方法?

Not*_*ple 5

去年我写了一篇关于检测更改性能的文章,你可以在这里找到:http://blog.staticvoid.co.nz/2012/5/7/entityframework_performance_and_autodetectchanges我的经验主要是使用DbContext(包装ObjectContext)但是我做了一点搜索,发现了以下内容

与ObjectContext相比,为什么在EF 4.1中插入实体的速度如此之慢?

这说的是ObjectContext实际上并没有进行自动更改检测,所以这不是你应该担心的事情.但是,您仍然需要注意大对象图会降低速度,因为所有快照跟踪方案都会检测到某些时候需要更改,这涉及对象图的完整枚举