5

この記事では、Entity Framework データ コンテキストで AutoDetectChanges をオフにすると、多数のエンティティを挿入するときにパフォーマンスが大幅に向上するという証拠をいくつか示します。

context.Configuration.AutoDetectChangesEnabled = false;

ただし、SqlEntityConnection 型プロバイダーによって提供される DataContext は、この設定を制御する方法を提供していないようです。

context.Configurationプロパティもプロパティもありませんcontext.DataContext.Configuration。はありますが、context.DataContext.ContextOptions似ているものは何もありませんAutoDetectChangesEnabled

タイプ プロバイダ コンテキストのDataContextプロパティのタイプは ですSystem.Data.Objects.ObjectContext。そこからこの特定の設定に影響を与える方法を知っている人はいますか?

4

1 に答える 1

5

私は昨年、ここで見つけることができる変更の検出パフォーマンスに関するかなり似た記事を書きました: http://blog.staticvoid.co.nz/2012/5/7/entityframework_performance_and_autodetectchanges少し検索したところ、次のことがわかりました

ObjectContext に比べて EF 4.1 でのエンティティの挿入が非常に遅いのはなぜですか?

つまり、ObjectContext は実際には自動変更検出を行わないため、心配する必要はありません。ただし、すべてのスナップショット追跡シナリオでは、ある時点で変更が必要であることを検出するため、オブジェクト グラフが大きいと速度が低下することに注意する必要があります。これには、オブジェクト グラフの完全な列挙が含まれます。

于 2013-01-02T23:33:15.800 に答える