當前位置: 妍妍網 > 碼農

.NET 開源 EF Core 批次處理擴充套件工具,真香

2024-04-24碼農

EFCore.BulkExtensions

EFCore.BulkExtensions 是一個開源的適用於 的批次處理擴充套件工具,這個庫是輕量級且非常高效的,可以增強常用的 CRUD 操作,這個計畫入選了微軟推薦的前 20 名 EF Core 擴充套件。

EFCore.BulkExtensions 支持 SQLServer, PostgreSQL, MySQL, SQLite.EFCore.BulkExtension 支持高效能的批次操作,包括 插入、更新、刪除、讀取、更新插入、保存等等。

如何使用?

首先使用 Nuget 安裝 EFCore.BulkExtensions。

Install-Package EFCore.BulkExtensions

批次操作範例

context.BulkInsert(entities);
context.BulkInsertOrUpdate(entities);
context.BulkInsertOrUpdateOrDelete(entities);
context.BulkUpdate(entities);
context.BulkDelete(entities);
context.BulkRead(entities);
context.BulkSaveChanges();

異步版本

context.BulkInsertAsync(entities);
context.BulkInsertOrUpdateAsync(entities); //Upsert
context.BulkInsertOrUpdateOrDeleteAsync(entiti);//Sync
context.BulkUpdateAsync(entities);
context.BulkDeleteAsync(entities);
context.BulkReadAsync(entities);
context.BulkSaveChangesAsync();

搭配 EF Core 使用

// 刪除
context.Items.Where(a => a.ItemId > 500).BatchDelete();
context.Items.Where(a => a.ItemId > 500).BatchDeleteAsync();
// 更新
context.Items.Where(a => a.ItemId <= 500).BatchUpdate(a => new Item { Quantity = a.Quantity + 100});
context.Items.Where(a => a.ItemId <= 500).BatchUpdateAsync(a => new Item {Quantity=a.Quantity+100});
// can be as value '+100' or as variable '+incrementStep' (int incrementStep = 100;)
// 更新
context.Items.Where(a => a.ItemId <= 500).BatchUpdate(new Item { Description = "Updated" });
context.Items.Where(a => a.ItemId <= 500).BatchUpdateAsync(new Item { Description = "Updated" });
// Truncate
context.Truncate<Entity>();
context.TruncateAsync<Entity>();

計畫地址

https://github.com/borisdj/EFCore.BulkExtensions

- EOF -

推薦閱讀 點選標題可跳轉

看完本文有收獲?請轉發分享給更多人

推薦關註「DotNet」,提升.Net技能

點贊和在看就是最大的支持❤️