Ifeanyi Wisdom Onyejekwe Ответов: 2

Как я могу получить список ролей и количества пользователей в них ASP.NET в MVC


Пожалуйста, как мне получить список ролей вместе с количеством пользователей, имеющих эту роль? что-то вроде Admin 3, Staff 7, Supervisor 12 и т. д.

Что я уже пробовал:

I have tried this

var users = allusers.Where(x=>x.Roles.Select(role => role.Name).Contains("User")).count;

but this is just for one role. I need it for all the roles, and when a new role is added in the db, it should also add to the list.

Thanks

2 Ответов

Рейтинг:
1

debasish mishra

Вы получите представление о том, как это реализовать.

Назначение ролей пользователям (C#) | Microsoft Docs[^]


Ifeanyi Wisdom Onyejekwe

Ну, это только усложнило дело...В любом случае спасибо

Рейтинг:
0

Animesh Datta

Привет,
Попробуйте что-нибудь вроде этого

DataTable dtuserrole=new DataTable();
dtuserrole.Columns.Add("Name");
dtuserrole.Columns.Add("Role");

dtuserrole.Rows.Add("A","Admin");
dtuserrole.Rows.Add("B","Admin");
dtuserrole.Rows.Add("C","User");
dtuserrole.Rows.Add("D","User");
dtuserrole.Rows.Add("E","Stuff");
dtuserrole.Rows.Add("F","User");
dtuserrole.Rows.Add("G","Superuser");
dtuserrole.Rows.Add("H","User");
dtuserrole.AcceptChanges();

var results = (from p in dtuserrole.AsEnumerable()
               group p by new {Role=p.Field<string>("Role")}into g
      select new { Role = g.Key, Count = g.Count()});

а выход будет такой
		foreach(var dr in results)
				Console.WriteLine("Role: "+dr.Role + "; Count: "+dr.Count);

Role: { Role = Admin }; Count: 2
Role: { Role = User }; Count: 4
Role: { Role = Stuff }; Count: 1
Role: { Role = Superuser }; Count: 1

Спасибо