Tutorials Entity Framework Core Tutorial
Bulk Operations in EF Core
Bulk Operations in EF Core: free step-by-step lesson with examples, common mistakes, and interview tips — part of Entity Framework Core Tutorial on Toolliyo Academy.
On this page
Entity Framework Core Tutorial · Lesson 26 of 100
Bulk Operations in EF Core
Beginner ✓ → Intermediate → Advanced → Professional
Intermediate · 2 — Data & queries · ~6 min · Module 3: CRUD Operations
What is this?
Bulk operations update or delete many rows in one SQL command without loading entities into the change tracker. EF Core 7+ offers ExecuteUpdateAsync and ExecuteDeleteAsync on IQueryable.
Why should you care?
ShopNest flash sale ends — marking 10,000 products inactive row-by-row with SaveChanges would freeze the API; bulk SQL finishes in seconds.
See it live — copy this example
Paste into a .NET project with EF Core packages, then run with LocalDB/SQL Server (dotnet ef / dotnet run).
await _context.Products
.Where(p => p.CategoryId == clearanceCategoryId)
.ExecuteUpdateAsync(s => s
.SetProperty(p => p.IsPublished, false)
.SetProperty(p => p.UpdatedAt, DateTime.UtcNow));
await _context.CartItems
.Where(c => c.ExpiresAt < DateTime.UtcNow)
.ExecuteDeleteAsync();
What happened?
- ExecuteUpdateAsync generates UPDATE … WHERE without SELECT into memory.
- ExecuteDeleteAsync issues DELETE for matching rows.
- Neither uses change tracking.
Practice next
- Install EF Core 7+ and test ExecuteUpdate on LocalDB with ten rows.
- Compare SQL log row count vs loading entities in a loop.
- Run bulk update inside a transaction when combined with other work.
- Chain SetProperty for Price discount: SetProperty(p => p.Price, p => p.Price * 0.9m).
- Wrap ExecuteDeleteAsync in BeginTransactionAsync for rollback testing.
Remember
ExecuteUpdate/ExecuteDelete avoid per-row tracking. Ideal for mass status or cleanup jobs. Always include a precise WHERE clause.
ShopNest clearance batch
End-of-season job unpublishes all clearance category products with one ExecuteUpdateAsync.
Outcome: Admin dashboard completes in under a second instead of timing out.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!