EF的批量操作

Posted penz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF的批量操作相关的知识,希望对你有一定的参考价值。

之前在一个临时迁移数据的项目中需要使用到EF针对mysql的批量操作,因为该项目具备以下条件:

  1. 是临时性的,数据掐迁移完成后就不再使用,
  2. 同时有一定的效率要求
  3. 项目中的实体在其他项目中都是基于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/


以上是关于EF的批量操作的主要内容,如果未能解决你的问题,请参考以下文章

EF的批量操作

EF 分页查询优化

关于EF中批量添加的个人探索

对EF Core进行扩展使支持批量操作/复杂查询

PostgreSQL 上的 EF Core 批量删除

如何使用 EF Core 7 批量删除数据