在 EF Core 7 中,我們可以使用批次操作來刪除多條資料。這種方式與之前的版本有所不同,本文將對比 EFCore 7 和之前版本批次刪除資料的不同方式。
在 EF Core 7 中,我們可以使用以下程式碼來刪除給定 ID 的資料:
await using var db = new MyContext();
await db.MyEntities.Where(static x => x.Id == 1).ExecuteDeleteAsync();
在之前的版本中,我們可以使用以下程式碼來刪除給定 ID 的資料:
await using var db = new MyDbContext();
// delete id == 1 by attaching it to the context
var myEntity = new MyEntity
{
Id = 1
};
db.Attach(myEntity);
db.Remove(myEntity);
await db.SaveChangesAsync();
在 EF Core 7 中,我們可以使用以下程式碼來刪除 Age 大於 10 的資料:
await using var db = new MyDbContext();
await db.MyEntities.Where(static x => x.Age > 10).ExecuteDeleteAsync();
在之前的版本中,我們可以使用以下程式碼來刪除 Age 大於 10 的資料:
await using var db = new MyDbContext();
// delete age > 10
var entities = db.MyEntities.Where(static x => x.Age > 10).ToList();
db.MyEntities.RemoveRange(entities);
await db.SaveChangesAsync();
在 EF Core 7 中,我們可以使用 ExecuteDeleteAsync 方法來批次刪除資料,這個方法的用法與之前的版本不同。使用這種方法,我們可以方便地在資料庫中刪除多條資料,提升了刪除資料的效率。
本文采用 Chat OpenAI 輔助注水澆築而成,如有雷同,完全有可能。
EF Core 7 ExecuteUpdate 和 ExecuteDelete: https://learn.microsoft.com/ef/core/what-is-new/ef-core-7.0/whatsnew?source=recommendations&WT.mc_id=DX-MVP-5003606#executeupdate-and-executedelete-bulk-updates