Ich benutze asp.net mvc-5 mit EF-6, und ich bin mir nicht sicher, ob die Verwendung von wait + ToListAsync
gültig ist. Zum Beispiel habe ich die folgende Repository-Methode, die eine IQeurable zurückgibt: -
Und ich nenne es wie folgt: -
%Vor%Am Anfang werde ich zwar einen Fehler bekommen, weil ich eine Methode "erwarte", die nicht als eine Aufgabe definiert ist, aber das obige hat gut funktioniert, also kann jemand bitte hier raten?
Am Anfang werde ich zwar einen Fehler bekommen, weil ich ihn benutze "erwarten" eine Methode, die nicht als eine Aufgabe definiert ist, aber das obige funktioniert gut
Sie warten auf eine Methode, die ein Task<T>
zurückgibt, wobei T
ein List<TSet>
ist. Wenn Sie sich die Erweiterungsmethode QueryableExtensions.ToListAsync
ansehen, Ich sehe, dass es ein Task<List<TSource>>
zurückgibt. Sie warten asynchron auf diese Methode, um die Datenbank abzufragen, die Liste zu erstellen und sie an den Aufrufer zurückzugeben. Wenn Sie await
für eine solche Methode angeben, kehrt die Methode erst zurück, wenn die Operation abgeschlossen ist. async-await lässt Ihren Code synchron erscheinen, während die Ausführung tatsächlich asynchron ist.
Eigentlich gibt es kein Problem, weil Sie die ToListAsync()
nicht die getAllScanEmailTo()
kennen.
BEARBEITEN: Um zu sehen, wie das async-await-Muster funktioniert, können Sie dies sehen link . Hier ist ein nützliches Bild von dort
Tags und Links c# async-await asynchronous entity-framework-6 asp.net-mvc-5