非同期の保存Asynchronous Saving

非同期の保存は、変更がデータベースに書き込まれるときに、スレッドがブロックを回避できます。Asynchronous saving avoids blocking a thread while the changes are written to the database. 固定のシック クライアント アプリケーションの UI を防ぐことができます。This can be useful to avoid freezing the UI of a thick-client application. 非同期操作では、ここで、スレッドを解放して、データベースの操作が完了するまで、他の要求を処理する web アプリケーションでスループットを向上できるもします。Asynchronous operations can also increase throughput in a web application, where the thread can be freed up to service other requests while the database operation completes. 詳細については、次を参照してください。 c# での非同期プログラミングです。For more information, see Asynchronous Programming in C#.

警告

EF コアは、同じコンテキスト インスタンスで実行されている複数の並列操作をサポートしていません。EF Core does not support multiple parallel operations being run on the same context instance. 常に、次の操作を開始する前に完了するための操作を待つ必要があります。You should always wait for an operation to complete before beginning the next operation. 使用してこれは、通常、await各非同期操作ではキーワードです。This is typically done by using the await keyword on each asynchronous operation.

Entity Framework Core 提供DbContext.SaveChangesAsync()する代わりに非同期DbContext.SaveChanges()です。Entity Framework Core provides DbContext.SaveChangesAsync() as an asynchronous alternative to 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();
    }
}