异步操作还可以增加 Web 应用程序的吞吐量,可以在数据库操作完成时释放线程去处理其他请求。
示例包括 ToListAsync()、ToArrayAsync()、SingleAsync() 等。对于部分 LINQ 运算符(如 Where(...)、OrderBy(...) 等),没有对应的异步版本,因为这些方法仅用于构建 LINQ 表达式树,而未将查询发送到数据库中执行。
public async Task<List<Blog>> GetBlogsAsync() { using (var context = new BloggingContext()) { return await context.Blogs.ToListAsync(); } }