のリストから結果を取得これまでに質問されていることは分かっていますが、これを正しく行う方法を理解することはできません。タスク
したがって、以下のコードは明らかに私がawait
という質問になっているという意味で間違っています。
// GET: /<controller>/
[HttpGet]
public new IActionResult Index()
{
var model = new List<Models.ViewModels.ApplicationUser.ListViewModel>();
model = _userManager.Users.Select(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);
}
これは、次のエラーを示しています。 "" await "演算子は、非同期ラムダ式内でのみ使用できます"。
だから、私は最初のクエリを確定し、私はラムダ非同期を行います
// 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);
}
しかし、その後、私は(私が推測する)そこで、基本的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>'
を取得し、それは私がのTask
のリストを持っていると言います私は結果を得るべきです。しかし、このTask
からどのように結果を得ることができますか?またはこれより良い方法:これについては、最も良い方法は何ですか?
私はthisとthisとthisに近づかずにチェックしました。
それは機能します!ありがとう@JSteward – Arjan