Enregistrement asynchroneAsynchronous Saving

L’enregistrement asynchrone évite de bloquer un thread lorsque les modifications sont écrites dans la base de données.Asynchronous saving avoids blocking a thread while the changes are written to the database. Cela peut être utile pour éviter le gel de l’interface utilisateur d’une application client lourde.This can be useful to avoid freezing the UI of a thick-client application. Les opérations asynchrones peuvent également augmenter le débit dans une application web, où le thread peut être libéré pour d’autres demandes de service lors de la fin de l’opération de base de données.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. Pour plus d’informations sur la programmation asynchrone, consultez Programmation asynchrone en C#.For more information, see Asynchronous Programming in C#.

Avertissement

EF Core ne prend pas en charge les opérations parallèles multiples en cours d’exécution sur la même instance de contexte.EF Core does not support multiple parallel operations being run on the same context instance. Vous devez toujours attendre qu’opération se termine avant de commencer l’opération suivante.You should always wait for an operation to complete before beginning the next operation. Cela est généralement effectué à l’aide du mot-clé await sur chaque opération asynchrone.This is typically done by using the await keyword on each asynchronous operation.

Entity Framework Core fournit DbContext.SaveChangesAsync() comme alternative asynchrone à 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();
    }
}