私が開発したEF Coreでバッチで更新、削除、挿入を実行するフレームワークZack.EFCore.Batchの新バージョンをリリースしました。この新バージョンでは、.NET 6のサポートが追加され、データのバッチ挿入時にValueConverterをサポートするようになりました。また、「更新データ時に、2つの列の式が等価な場合に発生するThe count of columns should be even例外」を完全に解決しました。
現在、プロジェクトは200以上のスターを獲得し、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