Asynchrone AbfragenAsynchronous Queries

Asynchrone Abfragen vermeiden, einen Thread zu blockieren, während die Abfrage in der Datenbank ausgeführt wird.Asynchronous queries avoid blocking a thread while the query is executed in the database. Dies kann nützlich, um zu vermeiden, fixieren die Benutzeroberfläche einer Anwendung dick-Client sein.This can be useful to avoid freezing the UI of a thick-client application. Asynchrone Vorgänge können auch in einer Web-Anwendung Durchsatz zu erhöhen, in dem der Thread freigegeben werden kann, um andere Anforderungen zu verarbeiten, während die Datenbankvorgang abgeschlossen wird.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. Weitere Informationen finden Sie unter asynchrone Programmierung in c#.For more information, see Asynchronous Programming in C#.

Warnung

EF Core unterstützt nicht mehrere parallele Vorgänge, die auf dieselbe Kontextinstanz ausgeführt werden.EF Core does not support multiple parallel operations being run on the same context instance. Sie sollten immer vor dem nächsten Vorgang Abschluss eines Vorgangs zu warten.You should always wait for an operation to complete before beginning the next operation. Dies erfolgt in der Regel mithilfe der await Schlüsselwort bei jedem asynchronen Vorgang.This is typically done by using the await keyword on each asynchronous operation.

Entity Framework Core bietet eine Reihe von asynchronen Erweiterungsmethoden, die verwendet werden können, als Alternative zu den LINQ-Methoden, die dazu führen, dass eine Abfrage ausgeführt werden und die Ergebnisse zurückgegeben.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. Beispiele hierfür sind ToListAsync(), ToArrayAsync(), SingleAsync()usw. Es sind nicht asynchronen Versionen der LINQ-Operatoren wie z. B. Where(...), OrderBy(...)usw., da diese Methoden nur die LINQ-Ausdrucksbaumstruktur zu erstellen und führen nicht dazu, dass die Abfrage in der Datenbank ausgeführt werden.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.

Wichtig

Die EF Core Async-Erweiterungsmethoden werden definiert, der Microsoft.EntityFrameworkCore Namespace.The EF Core async extension methods are defined in the Microsoft.EntityFrameworkCore namespace. Dieser Namespace muss für die Methoden zur Verfügung stehen, importiert werden.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();
    }
}