The old way:
foreach (var user in users)
user.IsActive = false;
await ctx.SaveChangesAsync();
The modern way:
await ctx.Users.Where(x => x.IsActive)
.ExecuteUpdateAsync(set => set.SetProperty(p => p.IsActive, false));
⚡ Benefits
-
🚀 Single SQL statement
-
🧼 No tracking overhead
-
💾 Saves CPU + DB roundtrips
-
🧩 Perfect for batch jobs + cron workers
