2017-09-26 1 views
-2

Entity Framework Core bietet asynchrone Erweiterungsmethoden unter IQueryable.Wann die asynschronus-Methoden mit EF Core verwenden?

Wie SingleAsync, SingleOrDefaultAsync, FirstAsync, FirstOrDefaultAsync, ToListAsync usw.

Wann sollte ich die normalen Methoden verwenden, und wann sollte ich die asynchronen Varianten verwenden? Wie soll ich wissen?

Sollte ich immer die asynchronen Erweiterungsmethoden oder nur unter bestimmten Anwendungsfällen oder Szenarien verwenden?

+3

Verwenden Sie asynchrone Methoden, wenn Sie asynchron ausführen möchten. Nicht sicher, ob deine Frage einen Sinn ergibt. – DavidG

+0

Wenn also ein ASP.NET Core-Controller ein Objekt aus EF Core holt und dieses ausgibt, sollte ich das asynchron tun oder nicht? Entweder funktioniert. – Fred

+1

Wenn Sie die Antwort nicht wissen, dann müssen Sie lesen und lesen, was 'async' /' erwarten' ist. – DavidG

Antwort

0

Von Asynchronous programming with async and await:

Asynchronität ist wichtig für Aktivitäten, die möglicherweise blockiert werden, wie Web-Zugriff. Der Zugriff auf eine Web-Ressource ist manchmal langsam oder verzögert. Wenn eine solche Aktivität in einem synchronen Prozess blockiert wird, muss die gesamte Anwendung warten. In einem asynchronen Prozess kann die Anwendung mit anderen Arbeiten fortfahren, die nicht von der Webressource abhängen, bis die potenziell blockierende Aufgabe abgeschlossen ist.

+0

Ja, ich weiß, ich benutze Async ausgiebig, wenn ich 'HttpClient' benutze. Aber diese Frage betrifft EF Core und welche Szenarien und Anwendungsfälle, um die verschiedenen angebotenen Methodenarten zu nutzen. – Fred

+0

Das ist das Gleiche. EF führt einen Netzwerkaufruf zu Ihrem SQL-Server durch und wartet, während der Server die Abfrage ausführt. Wenn Sie Ihre Server-Ressourcen nicht für dummes Warten verschwenden wollen - warten Sie nicht, verwenden Sie async. – Dmitry

+0

Also sollte ich * immer * die * Async-Methoden verwenden? Auch dann ist es "dumm warten", da ich das 'erwarten' Schlüsselwort verwende, oder? – Fred