GroupBy کاربران توسط ماه های شمسی
من از Identity 3.1 استفاده کردم خودش همه جداول رو ساخته و فیلد تاریخ ثبت نام رو به صورت Datetime خودم اضافه کردم
منتها الان برای اینکه بدونم در هر ماه چند کاربر ثبت نام کردن مشکل دارم لطفا من رو راهنمایی کنید
دستور لامبدا رو برایتون میذارم
var pc = new PersianCalendar();
var dt = JsonConvert.SerializeObject(_userManager.Users
.GroupBy(o => new
{
Month = o.RegisterDate.Date,
})
.Select(g => new
{
Month = pc.GetMonth(g.Key.Month),
Total = g.Count()
})
.ToList()) ;
نقل قول: GroupBy کاربران توسط ماه های شمسی
بکارگیری متد تبدیل تاریخ در عبارات لامبدا قابل قبول نیست و خطا صادر میکند
این قسمت از کدها را حذف کنید
Month = pc.GetMonth(g.Key.Month),
بجاش g.key.mounth کافی هست
راه حل ها:
1- در سمت کلاینت معادل ماه میلادی بدست امده را به شمسی تبدیل کنید
2- با Automapper هم میتونید تاریخ را تبدیل کنید
3- بعد یا قبل از گروپ کردن ToList بکار ببرید و بعد از واکشی لیست خام یا گروه بندی شده , متد شمسی را در دستور select بکار ببرید
var dt = JsonConvert.SerializeObject(_userManager.Users .GroupBy(o => new
{
Month = o.RegisterDate.Date,
}).ToList()
روش آخر و Automapper در سمت سرور کمی سربار دارد و دوباره کاری دارد ولی به نتیجه میرسید