The Truth About AddAsync: When to Use It in EF Core (and When Not To)
Let's crack open that EF Core mystery: Why does AddAsync() exist when there's no UpdateAsync() or RemoveAsync()? Feels like unfair treatment, right? Spoiler: It’s not favoritism—it’s about async value generation, not database calls. Let’s break it down. The Big Misconception AddAsync() does NOT talk to your database. Nope, not even a little. When you write: await db.Users.AddAsync(user); Zero bytes hit the database. All it does is tell EF: "Track this new entity; insert it later when I save." The actual INSERT happens at SaveChangesAsync(). So why Async?

Let's crack open that EF Core mystery: Why does AddAsync()
exist when there's no UpdateAsync()
or RemoveAsync()
? Feels like unfair treatment, right? Spoiler: It’s not favoritism—it’s about async value generation, not database calls. Let’s break it down.
The Big Misconception
AddAsync()
does NOT talk to your database. Nope, not even a little. When you write:
await db.Users.AddAsync(user);
Zero bytes hit the database. All it does is tell EF: "Track this new entity; insert it later when I save." The actual INSERT
happens at SaveChangesAsync()
.
So why Async
?