シナリオ:
ID認証を使用するAsp.netコアプログラムがあります。
ゴール:
次のような特定の役割を持つユーザーの数を取得したい:
private readonly UserManager<ApplicationUser> _userManager;
private readonly RoleManager<ApplicationRole> _roleManager;
public RoleController(UserManager<ApplicationUser> userManager, RoleManager<ApplicationRole> roleManager)
{
_userManager = userManager;
_roleManager = roleManager;
}
public IActionResult Index()
{
List<roleListViewModel> model = new List<roleListViewModel>();
model = _roleManager.Roles.Select(r => new roleListViewModel
{
id = r.Id,
Name = r.Name,
Description = r.Description,
NumberOfUsers = r.User.count
}).ToList();
return View(model);
}
問題は:
並んでいるユーザーが見つかりませんでしNumberOfUsers = r.User.count
た。
ロールモデル:
public class ApplicationRole:IdentityRole
{
public string Description { get; set; }
}
ロール ビュー モデル:
public class roleListViewModel
{
public string id { get; set; }
[Required(ErrorMessage = "Name can not empty")]
[Display(Name ="Name")]
public string Name { get; set; }
public int NumberOfUsers { get; set; }
[Required(ErrorMessage = "Description can not empty")]
[Display(Name = "Description")]
public string Description { get; set; }
}
ビュー インデックス:
@foreach (var item in Model)
{
<tr>
<td>@item.Name</td>
<td>@item.Description</td>
<td>@item.NumberOfUsers</td>
</tr>
}