با سلام .
من مشغول ایجاد ویو ایجاد و نمایش نقش ها بر اساس 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);
تاریخ :
1404/01/24
- ساعت :
07:09:00 AM
- بازدید :
25
- پاسخ :
0
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1331
- پاسخ :
0
|
تاریخ :
1403/12/01
- ساعت :
01:07:00 PM
- بازدید :
195
- پاسخ :
0
|
تاریخ :
1403/12/26
- ساعت :
03:04:00 PM
- بازدید :
84
- پاسخ :
1
|
تاریخ :
1403/12/23
- ساعت :
11:21:00 AM
- بازدید :
182
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:21:00 PM
- بازدید :
6851
- پاسخ :
1
|
تاریخ :
1403/12/22
- ساعت :
11:05:00 AM
- بازدید :
222
- پاسخ :
1
|
تاریخ :
1403/12/19
- ساعت :
11:21:00 PM
- بازدید :
88
- پاسخ :
1
|
تاریخ :
1403/12/18
- ساعت :
07:24:00 PM
- بازدید :
135
- پاسخ :
1
|
تاریخ :
1398/09/06
- ساعت :
09:06:00 PM
- بازدید :
3443
- پاسخ :
1
|
تاریخ :
1404/01/24
- ساعت :
07:09:00 AM
- بازدید :
25
- پاسخ :
0
|
تاریخ :
1404/01/16
- ساعت :
07:20:00 PM
- بازدید :
170
- پاسخ :
1
|
تاریخ :
1404/01/17
- ساعت :
05:35:00 PM
- بازدید :
88
- پاسخ :
0
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
129
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1331
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
94
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9891
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
53
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
57
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
79
- پاسخ :
1
|