2012-12-07 33 views
6

我試圖添加()約18000對象到我的DBContext。花了大約5分鐘。使用SaveChanges()保存這些數據需要更長的時間。我切換到創建一個正常的列表並添加我的對象,之後我用SqlBulkCopy來堅持數據。這花了大約5秒鐘。在EF DBContext Add方法的引擎下發生了什麼?

Add方法做了什麼,這會花費很長時間?

+1

(+1)。你還在談論這樣的事情嗎?:http://stackoverflow.com/questions/5940225/fastest-way-of-inserting-in-entity-framework –

+0

是的,謝謝你 – Kenci

回答

1

所以會發生什麼情況是每次添加調用DetectChanges都會在上下文中執行。這列舉了整個對象圖,所以跟蹤每個單獨添加的時間越長,項目越多。 Theres一堆調整,你可以做到這一點以及東西去快(我的約1k/s插入我家vm)。

有效,不調整EF添加性能是O(n^2)

我進入這在相當多的細節,在下面的文章:

EntityFramework Performance and AutoDetectChanges

有關如何更DEETS快速EF可以執行調整時看看這裏:

Entity Framework Comparative Performance

相關問題