我开发的在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
支持数据的批量快速插入
。
当然,如果您使用SqlSugar
、Dapper
之类的ORM
也可以实现类似的效果,我这个库最大的特色就是它是基于EF Core
的扩展,可以复用EF Core
的特性。如果您不使用EF Core
,那么可以忽略它。
原文作者:杨中科
原文链接:https://mp.weixin.qq.com/s/MYxVGxa_DQnn4XMIDryd9Q
项目地址:https://github.com/yangzhongke/Zack.EFCore.Batch