Ich weiß, dass dies schon einmal gefragt wurde, aber ich kann einfach nicht herausfinden, wie man das richtig macht.Holen Sie sich das Ergebnis aus einer Liste von Aufgabe
So ist der Code unten ist offensichtlich falsch in dem Sinne, dass ich bin await
etwas in einer Abfrage ing.
Dies macht den folgenden Fehler angezeigt: "Der" erwarten "-Operator kann nur innerhalb eines asynchronen Lambda-Ausdruck verwendet werden".
So finalisieren ich die Abfrage zuerst und ich mache das Lambda-Asynchron:
// GET: /<controller>/
[HttpGet]
public new IActionResult Index()
{
var model = new List<Models.ViewModels.ApplicationUser.ListViewModel>();
// get users first, so I don't have to async something in a Select
var users = _userManager.Users.ToList();
// make the lambda asyc
model = users.Select(async u => new Models.ViewModels.ApplicationUser.ListViewModel
{
Id = u.Id,
Email = u.Email,
Name = u.GivenName + " " + u.SurName,
RoleNames = await _userManager.GetRolesAsync(u)
}).ToList();
return View(model);
}
Aber dann bekomme ich Cannot implicitly convert type 'System.Collections.Generic.List<System.Threading.Tasks.Task<Models.ViewModels.ApplicationUser.ListViewModel>>' to 'System.Collections.Generic.List<Models.ViewModels.ApplicationUser.ListViewModel>'
Also im Grunde (glaube ich) es sagt, dass ich eine Liste von Task
davon habe Ich sollte das Ergebnis bekommen. Aber wie bekomme ich das Ergebnis davon Task
? Oder besser: Was ist der beste Weg, dies zu tun?
Ich habe this und this und this überprüft, ohne näher zu kommen.
Das funktioniert! Danke @JSteward – Arjan