我开发的在EF Core批量执行更新删除插入数据的框架Zack.EFCore.Batch已经发布新版,新版增加了对.NET 6的支持,数据批量插入的时候支持ValueConverter,彻底解决了“更新数据的时候,当两列的表达式等价时候出现的The count of columns should be even异常”

目前项目已经有200多个star,解决了40多个issue,所以比较成熟了。

使用这个库,我们可以用如下的方式进行数据的批量更新、删除:

await ctx.DeleteRangeAsync<Book>(b => b.Price > n || b.AuthorName == "zack yang"); 

await ctx.BatchUpdate<Book>()
    .Set(b => b.Price, b => b.Price + 3)
    .Set(b => b.Title, b => s)
    .Set(b => b.AuthorName,b=>b.Title.Substring(3,2)+b.AuthorName.ToUpper())
    .Set(b => b.PubTime, DateTime.Now)
    .Where(b => b.Id > n || b.AuthorName.StartsWith("Zack"))
    .ExecuteAsync();

Zack.EFCore.Batch支持数据的批量快速插入

当然,如果您使用SqlSugarDapper之类的ORM也可以实现类似的效果,我这个库最大的特色就是它是基于EF Core的扩展,可以复用EF Core的特性。如果您不使用EF Core,那么可以忽略它。

原文作者:杨中科

原文链接:https://mp.weixin.qq.com/s/MYxVGxa_DQnn4XMIDryd9Q

项目地址:https://github.com/yangzhongke/Zack.EFCore.Batch