在 EF Core 7 中,我們可以使用批量操作來刪除多條數據。這種方式與之前的版本有所不同,本文將對比 EFCore 7 和之前版本批量刪除數據的不同方式。
刪除給定 ID 的數據
在 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();
刪除 Age 大于 10 的數據
在 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 方法來批量刪除數據,這個方法的用法與之前的版本不同。使用這種方法,我們可以方便地在數據庫中刪除多條數據,提升了刪除數據的效率。
參考資料
EF Core 7 ExecuteUpdate 和 ExecuteDelete[1]
本文采用 Chat OpenAI 輔助注水澆筑而成,如有雷同,完全有可能。
本文作者:newbe36524
本文鏈接:https://www.newbe.pro/ChatAI/How-to-batch-delete-data-by-efcore-7/
版權聲明:本博客所有文章除特別聲明外,均采用 BY-NC-SA 許可協議。轉載請注明出處!
參考資料
[1]
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