EF的批量操作
之前在一个临时迁移数据的项目中需要使用到EF针对Mysql的批量操作,因为该项目具备以下条件:
- 是临时性的,数据掐迁移完成后就不再使用,
- 同时有一定的效率要求
- 项目中的实体在其他项目中都是基于EF的,已经写好了Model
考虑到尽可能的减少工作量,最快捷的方式是找到一个支持EF批量操作的框架,因为Model已经是现成的,写linq肯定还是比写原生sql方便一些,然后就找到了Entity Framework Extensions。
Entity Framework Extensions
Entity Framework Extensions是一个基于EntityFramework框架的扩展支持批量操作,而且效率还可以,语法也特别简单,eg:
// Easy to use
context.BulkSaveChanges();
context.BulkInsert(list);
context.BulkUpdate(list);
context.BulkDelete(list);
context.BulkMerge(list);
// Easy to customize
context.BulkMerge(customers, options =>
options.ColumnPrimaryKeyExpression = customer => customer.Code);
当然,这么好用的东西是要收费的,但是还是可以试用的,而且试用是没有限制的,每个月需要重新导一次它最新的dll,因为是临时项目,所以在运行的时候只需要保证dll是最新的就可以了,生成环境的话,建议还是花点钱吧
具体的介绍和使用方式可以参加官网:
https://entityframework-extensions.net/