
Async LINQ: Why ToListAsync Exists (And Why WhereAsync Doesn't)
You write await dbContext.Products.ToListAsync(). Good. Then you wonder: where's WhereAsync? Why isn't await dbContext.Products.WhereAsync(p => p.Price > 100)? The answer reveals something fundamental about how LINQ actually works. Where the Async Boundary Lives LINQ operators like Where, Select, OrderBy don't execute anything. They build a query. An expression tree. A recipe.

