异步保存Asynchronous Saving

当所做的更改被写入数据库时,异步保存可避免阻塞线程。 这有助于避免冻结富客户端应用程序的 UI。 异步操作还可以增加 Web 应用程序的吞吐量,可以在数据库操作完成时释放线程去处理其他请求。 有关详细信息,请参阅使用 C# 异步编程

警告

EF Core 不支持在同一上下文实例上运行多个并行操作。 应始终等待操作完成,然后再开始下一个操作。 这通常是通过在每个异步操作上使用 await 关键字完成的。

Entity Framework Core 提供了 DbContext.SaveChangesAsync() 作为 DbContext.SaveChanges() 的异步替代方法。

  1. public static async Task AddBlogAsync(string url)
  2. {
  3. using (var context = new BloggingContext())
  4. {
  5. var blog = new Blog { Url = url };
  6. context.Blogs.Add(blog);
  7. await context.SaveChangesAsync();
  8. }
  9. }