0

在我使用EF 6.0的MVC 5應用程序中,我希望在一次打擊中使用實體框架將200多條產品記錄插入到數據庫中。 [1]一種方法是將記錄列表轉換爲XML並傳遞給存儲過程。 [2]如果我使用DbContext.Add(),它將觸發每個記錄(在內部創建插入腳本)。 [3]如果我遍歷產品列表並將每條記錄傳遞給存儲過程,我認爲這也不好。如何在實體框架中一次插入200行到數據庫中

這樣做的最好方法是什麼?

+1

您可以使用BulkInsert - EF有幾個擴展可以做到這一點。這是我第一次發現使用Google搜索 - [https://github.com/zzzprojects/EntityFramework-Extensions](https://github.com/zzzprojects/EntityFramework-Extensions) –

回答

0

我不確定這個問題How to pass a table-value parameter是否適合您,但這正是我用來將數據加載到SQL 2014數據庫中的原因。非常好,已經工作了4年以上。

0

免責聲明:我是這個項目的所有者Entity Framework Extensions

(該庫是不是免費的)

這個庫可以使你的代碼更有效的讓您節省數倍於實體一旦。所有批量操作的支持:

  • BulkSaveChanges
  • BulkInsert
  • BulkUpdate
  • BulkDelete
  • BulkMerge
  • BulkSynchronize

實施例:

// 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 Primary Key 
context.BulkMerge(customers, operation => { 
    operation.ColumnPrimaryKeyExpression = 
     customer => customer.Code; 
}); 
相關問題