我開發的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