This article提供了一些证据,表明在插入大量实体时,关闭Entity Framework数据上下文中的AutoDetectChanges可以显着提高性能。
context.Configuration.AutoDetectChangesEnabled = false;
但是,SqlEntityConnection type provider提供的DataContext似乎没有提供任何方法来控制此设置。
没有context.Configuration
属性或context.DataContext.Configuration
属性。有context.DataContext.ContextOptions
,但它甚至没有AutoDetectChangesEnabled
。
类型提供程序上下文的DataContext
属性的类型为System.Data.Objects.ObjectContext
。有谁知道从那里影响这个特定环境的方法?
答案 0 :(得分:5)
去年我写了一篇关于检测更改性能的非常类似的文章,您可以在这里找到:http://blog.staticvoid.co.nz/2012/5/7/entityframework_performance_and_autodetectchanges我的经验主要是使用DbContext(包装ObjectContext),但我做了一些搜索并找到了以下< / p>
Why is inserting entities in EF 4.1 so slow compared to ObjectContext?
这说的是ObjectContext实际上并没有进行自动更改检测,所以这不是你应该担心的事情。但是,您仍然需要注意大对象图会降低速度,因为所有快照跟踪方案都会检测到某些时候需要更改,这涉及对象图的完整枚举