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.

支持多种灵活的扩展方式,官方也有叫详细的示例,感兴趣的朋友可以试一下。

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