异步保存Asynchronous Saving
当所做的更改被写入数据库时,异步保存可避免阻塞线程。 这有助于避免冻结富客户端应用程序的 UI。 异步操作还可以增加 Web 应用程序的吞吐量,可以在数据库操作完成时释放线程去处理其他请求。 有关详细信息,请参阅使用 C# 异步编程。
警告
EF Core 不支持在同一上下文实例上运行多个并行操作。 应始终等待操作完成,然后再开始下一个操作。 这通常是通过在每个异步操作上使用 await
关键字完成的。
Entity Framework Core 提供了 DbContext.SaveChangesAsync()
作为 DbContext.SaveChanges()
的异步替代方法。
public static async Task AddBlogAsync(string url)
{
using (var context = new BloggingContext())
{
var blog = new Blog { Url = url };
context.Blogs.Add(blog);
await context.SaveChangesAsync();
}
}