EntityFramework中的的高效批量插入

EF雖然是一個功能強大的orm工具,但對高性能的批量插入支持卻不咋地,今天就遇到了這個海量數據插入的問題,本來用SqlBulkCopy也能解決,但想找下EF中有沒有較好的實現方法,找了下在stackoverflow上遇到了同樣的問題:c# - Fastest Way of Inserting in Entity Framework。其中得分高,且版本新的是一個名爲的表最高的是一個名爲EFCore.BulkExtensions的庫。

看了下,它是支持Microsoft SQLServer(2012+)或SqlAzure,PostgreSQL(9.5 +)和SQLite這幾個數據庫的。

使用方法也比較簡單:

var bulkConfig = new BulkConfig { SetOutputIdentity = true, BatchSize = 4000 };
context.BulkInsert(entities, bulkConfig);
context.BulkInsertOrUpdate(entities, new BulkConfig { SetOutputIdentity = true });
context.BulkInsertOrUpdate(entities, b => b.SetOutputIdentity = true); // e.g. BulkConfig with Action arg.

支持多種靈活的擴展方式,官方也有叫詳細的示例,感興趣的朋友可以試一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章