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

时间:2013-01-02 23:12:45

标签: entity-framework f# type-providers

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。有谁知道从那里影响这个特定环境的方法?

1 个答案:

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