Consultas assíncronasAsynchronous Queries

Consultas assíncronas evitar o bloqueio de um thread enquanto a consulta é executada no banco de dados.Asynchronous queries avoid blocking a thread while the query is executed in the database. Isso pode ser útil para evitar o congelamento de interface do usuário de um aplicativo cliente grossa.This can be useful to avoid freezing the UI of a thick-client application. Operações assíncronas também pode aumentar a taxa de transferência em um aplicativo web, em que o thread pode ser liberado para atender a outras solicitações enquanto a operação de banco de dados é concluída.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. Para obter mais informações, consulte programação assíncrona em c#.For more information, see Asynchronous Programming in C#.

Aviso

Núcleo EF não oferece suporte a várias operações simultâneas que estão sendo executadas na mesma instância do contexto.EF Core does not support multiple parallel operations being run on the same context instance. Você sempre deve esperar para uma operação seja concluída antes de iniciar a próxima operação.You should always wait for an operation to complete before beginning the next operation. Isso geralmente é feito usando o await palavra-chave em cada operação assíncrona.This is typically done by using the await keyword on each asynchronous operation.

Entity Framework Core fornece um conjunto de métodos de extensão assíncrona que pode ser usado como uma alternativa para os métodos LINQ que causam uma consulta a ser executada e os resultados retornados.Entity Framework Core provides a set of asynchronous extension methods that can be used as an alternative to the LINQ methods that cause a query to be executed and results returned. Os exemplos incluem ToListAsync(), ToArrayAsync(), SingleAsync(), etc. Não há versões assíncronas dos operadores LINQ como Where(...), OrderBy(...), etc., pois esses métodos apenas criar a árvore de expressão LINQ e fazem com que a consulta a ser executada no banco de dados.Examples include ToListAsync(), ToArrayAsync(), SingleAsync(), etc. There are not async versions of LINQ operators such as Where(...), OrderBy(...), etc. because these methods only build up the LINQ expression tree and do not cause the query to be executed in the database.

Importante

Os métodos de extensão do EF Core assíncronas são definidos no Microsoft.EntityFrameworkCore namespace.The EF Core async extension methods are defined in the Microsoft.EntityFrameworkCore namespace. Esse namespace deve ser importado para os métodos disponíveis.This namespace must be imported for the methods to be available.

public async Task<List<Blog>> GetBlogsAsync()
{
    using (var context = new BloggingContext())
    {
        return await context.Blogs.ToListAsync();
    }
}