EF5 のパフォーマンスに関する考慮事項に関する便利なリンクを次に示します。
変更追跡プロキシを使用していますか? そうでない場合は、速度を上げることができる場合があります。リンクから:
POCO エンティティに変更追跡プロキシがない場合、変更は、エンティティの内容を以前に保存された状態のコピーと比較することによって検出されます。この詳細な比較は、コンテキスト内に多くのエンティティがある場合、またはエンティティに非常に大量のプロパティがある場合、最後の比較が行われてからプロパティが変更されていなくても、時間のかかるプロセスになります。
それ以外の場合DbContextConfiguration.AutoDetectChangesEnabled = false
は、コメントやリンクで提案されているように設定できます。DetectChanges()
通常は自動的に呼び出される集中的な DbSet/DbContext メソッド呼び出しを行った後でも、明示的に呼び出すことができます。
また、コンテキスト内のエンティティの数を減らすことはできますか? ObjectStateManager で追跡する必要のないエンティティがある場合は、おそらく AsNoTracking() クエリを使用します。