دسته بندی ها
14:56 1400/08/25

بدست آوردن تعداد کاربران یک نقش در Asp.net core identity

مشخصات سوال کننده :
کاربر : Mammadq     امتیاز کاربر : 0     رتبه کاربر : 7020
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2468
پاسخ دهنده : hamid_b 13:30 1400/08/26

بدست آوردن تعداد کاربران هر نقش در Asp net Core Identity

ببینید در آیدنتیتی یه جدول به نام AspNetRoles هست که لیست نقش های شما توی این جدول نگهداری میشه. یه جدول هم که AspNetUserRoles هست که لیست کاربران به همراه نقش اون کاربر رو نگهداری میکنه. شما میتونه از ترکیب این دو جدول تعداد کاربران هر نقش رو بدست بیارید.

Select Count(*),UR.RoleId,R.Name
From AspNetUserRoles UR Join AspNetRoles R 
on UR.RoleId = R.Id 
Group By UR.RoleId,R.Name

خروجی کوئری بالا مشابه تصویر زیر هست :

 

نمایش تعداد کاربران هر نقش در Identity

 

در تصویر بالا می بینید که مثلا تعداد کاربران Student برابر با 5 نفر هست.

به این پاسخ امتیاز بدهید    0
امتیاز: 510 رتبه: 4
پاسخ دهنده : fateme 14:01 1400/08/26

اگر بخواید از طریق دستورات انتیتی فریم ورک هم میتونید تعداد کاربران هر نقش رو نمایش بدید.

var result = (from ur in _cxt.UserRoles
join r in _cxt.Roles on ur.RoleId equals r.Id
group new { ur, r } by new { ur.RoleId } into grp
select new { name = grp.Key, count = grp.Count() }).ToList();

در مثال بالا _cxt همون DbContext شما هست. در متغیر result لیست همه نقش ها و تعداد کاربران اونها نمایش داده میشه.

به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود