Entity Framework Core Interview Question #141
How can EF Core execute a non-query SQL command?
Performance, Raw SQL, Stored Procedures & Advanced Queries Senior Advanced
Quick Interview Answer
Relational EF Core APIs can execute SQL commands that do not return entity query results, such as controlled UPDATE or DELETE commands. Values should be parameterized. Direct SQL bypasses normal tracked-entity SaveChanges behavior, so already tracked entities may contain stale values afterward.
Detailed Explanation
Relational EF Core APIs can execute SQL commands that do not return entity query results, such as controlled UPDATE or DELETE commands. Values should be parameterized. Direct SQL bypasses normal tracked-entity SaveChanges behavior, so already tracked entities may contain stale values afterward.
Code Example
int affected = await db.Database.ExecuteSqlAsync(
$"UPDATE Products SET IsPublished = {false} WHERE StockQuantity = {0}");