با سلام .
من مشغول ایجاد ویو ایجاد و نمایش نقش ها بر اساس Entity هستم . تو یکی از عبارات که میخوام از متد Count استفاده کنم ایراد میده .
تصاویر رو گذاشتم . یک راهنمایی بکنید. در کد زیر متد Count رو ایراد میگیره
public IActionResult Index()
{
List<ApplicationRoleViewModel> model = new List<ApplicationRoleViewModel>();
model = _roleManager.Roles.Select(r => new ApplicationRoleViewModel
{
Id = r.Id,
Name = r.Name,
Description = r.Description,
NumberOfUsers = r.Users.Count
}).ToList();
return View(model);
}
ویو مدل که ایجاد کردم :
public class ApplicationRoleViewModel
{
public string Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int NumberOfUsers { get; set; }
}
خطایی که دریافت میکنم خطای زیر هست
cannot convert method group 'Count' to non delegate type 'int'
احتمالا شما این کد را در Asp.net Core نسخه 1.1 نوشته اید و اکنون پروژه خودتون رو به نسخه 2 یا بالاتر ارتقا داده اید. در نسخه های قبلی می شد بدون پرانتز هم متد رو قرار داد ولی شما باید پرانتز برای متد خودتون قرار بدید.
NumberOfUsers = r.Users.Count()
اگر هدق شما به دست آوردن تعداد کاربران در هر Role می باشد به صورت زیر هم میتونید کدهای خودتون رو تغییر بدید :
public IActionResult Index()
{
var alluserRoles = _context.UserRoles.ToList();
List<ApplicationRoleViewModel> model = new List<ApplicationRoleViewModel>();
model = _roleManager.Roles.Select(r => new ApplicationRoleViewModel
{
Id = r.Id,
Name = r.Name,
Description = r.Description,
//NumberOfUsers = r.Users.Count
NumberOfUsers = alluserRoles.Count(ur => ur.RoleId == r.Id)
}).ToList();
return View(model);
}
باید گفت آموزشی که من با اون جلو میرم مربوط به AspNetCore 2 هستش . اما محیطی که در اون کار میکنم AspNetCore 5 هستش ؛
من با این ترتیب زدم و کد کار کرد ( ایرادی نگرفت ) . اما فعلا فقط یک نقش در جدول ثبت شده که آن هم به کاربری اختصاص داده نشده و در جدول UserRole که واسط بین User و Role هستش و همچنین جدول User هیچ رکوردی ثبت نشده.
به همین دلیل در جدول ویو، نام نقش و توضیحات رو داره اما تعداد کاربر ثبت شده رو صفر بر میگردونه.
که در اینده با ثبت یک کاربر و تخصیص نقش به اون باید این فیلد جدول ویو باید مقداری غیر از صفر رو برگردونه .
که امیدوارم ایرادی نگیره .
private readonly UserManager<ApplicationUser> _userManager;
private readonly RoleManager<ApplicationRole> _roleManager;
public ApplicationRoleController(UserManager<ApplicationUser> userManager,
RoleManager<ApplicationRole> roleManager)
{
_userManager = userManager;
_roleManager = roleManager;
}
public IActionResult Index()
{
var alluserRoles = _userManager.Users.ToList();
List<ApplicationRoleListViewModel> model = new List<ApplicationRoleListViewModel>();
model = _roleManager.Roles.Select(r => new ApplicationRoleListViewModel
{
Id = r.Id,
RoleName = r.Name,
RoleDiscription = r.RoleDiscription,
RoleNumberOfUsers = alluserRoles.Count()
}).ToList();
return View(model);
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
78
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
111
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
216
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
568
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
78
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
111
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|