Entity Framework - Delete Without Loading
How to delete without loading entities in the context?
Deleting entities using SaveChanges requires typically to load them first in the ChangeTracker. These additional round-trips are often not necessary.
StackOverflow Related Questions
Entity Framework Extensions library adds the DeleteFromQuery extension method. DeleteFromQuery gives you access to directly execute a
DELETE statement in the database and provide a HUGE performance improvement.
- DELETE all rows from the database using a LINQ Query without loading entities in the context.
- A DELETE statement is built using the LINQ expression and directly executed in the database.
// DELETE all customers that are inactive context.Customers.Where(c => !c.IsActive).DeleteFromQuery(); // DELETE customers by id context.Customers.Where(x => x.CustomerID == customerId).DeleteFromQuery();
|Operations||1,000 Entitie||2,000 Entities||5,000 Entities|
|SaveChange||1,000 ms||2,000 ms||5,000 ms|
|DeleteFromQuery||1 ms||1 ms||1 ms|