2017-11-18 8 views
0

複数のテーブル(約30個のテーブル)にバルク・インサート(約50-100行)を実行しなければならない場合は、 外部キー。 エンティティフレームワーク(EF)を使用してこれを行いたいと思います。 しかし、これは、各テーブルのcontext.SaveChanges()を呼び出す代わりに、最小限のdbヒットで起こってほしいです。これを実行する方法はありますか?それなら私に知らせてください。 ありがとうございます!エンティティ・フレームワークを使用して外部キーに関連するマルチプル・テーブルにバルク・インサートを実行する方法

+0

https://stackoverflow.com/questions/5940225/fastest-way-of-inserting-in-entity-framework –

+0

不可コード内の実際のケースを見ることなくこれに答えることができます。 –

+0

ここでは1つのサンプルケース.. –

答えて

0

Entity Frameworkは、Bulk機能を提供しません。

保存する行ごとに、データベースのラウンドトリップが必要です。


免責事項:私はこのライブラリは無料ではありませんが、あなたがより速くSaveChangesのように動作しますが、BulkSaveChangesを実行することができますEntity Framework Extensions

の持ち主だ:

  • バルクのSaveChanges
  • バルク挿入
  • バルク削除
  • 一括更新
  • バルク

例マージ

// Easy to use 
context.BulkSaveChanges(); 

// Easy to customize 
context.BulkSaveChanges(bulk => bulk.BatchSize = 100); 

// Perform Bulk Operations 
context.BulkDelete(customers); 
context.BulkInsert(customers); 
context.BulkUpdate(customers); 

// Customize Bulk Operations 
context.BulkInsert(customers, options => { 
    options => options.IncludeGraph = true; 
}); 
context.BulkMerge(customers, options => { 
    options.ColumnPrimaryKeyExpression = 
     customer => customer.Code; 
}); 
関連する問題