نقل قول: Model and View Model
سلام.
مدل که در identity نمیشه دست زد. در داخل یکی از کلاس های identity که کلاس های بعدی از اون مشتق میشن.
اما شما می تونی از uerview model در مدل ها استفاده کنی و کدی رو که می خوای بنویسی.
به نظر کد sample که identity.sample هست رو نگاه کنی دقیقا همین رو که می خوای انجام داده.
من خودم از identity.sample استفاده کردم و اون رو custom کردم و جاهایی رو هم که اشکال داشت درست کردم و در اخر اومدم و اون رو کلا بردم داخل یه dll مجرا تا بشه هر پروژه که بخوام استفاده کنم.
موفق باشید
نقل قول: Model and View Model
سلام سپاس از شما.
اصلا identity رو بذارید کنار
چطور می شه لیستی از یک مودل رو به لیستی از ویومدل داد...؟
بدون استفاده از AutoMapper تا به حال ندیدم لیستی از مودل در لیستی از ویو مودل بریزند (شاید باید یک حلقه از مودل ایجاد کرد تک به تک ان را ریخت)
اما در AutoMapper می تونیم با یک خط کد لیستی از مودل رو به لیستی از یومودل بدیم
در Identity 2.0 (لینک رو ببینید قبلا ان چیزی که شما گفتید انجام دادم) مشکل اینجاست که مودل user مشخص نیست(یا حداقل بنده نمی دونم) تا ان را به ویومودل بدم.
لطفا دوستان اگر با Identity 2.0 کار نکردند حداقل نمونه کدی بدید تا لیستی از مودل به لیستی از ویومودل داده شود (چه بدون AutoMapper و یا به وسیله AutoMapper) تا یاد بگیرم.
و اگر کسی می دونه در Identity 2.0 مودل یوزر کجاست یا اگر بخواهیم لیستی از کاربران داشته باشیم (همراه با رولشان) چطور می تونیم به ان دست پیدا کنیم.
متاسفانه هرچه سرچ می کنم به نتیجه ای نمی رسم
نقل قول: Model and View Model
با سلام.
در مورده پاس دادن اطلاعات از Model به ViewModel بدون استفاده از AutoMapper این روش رو میتونی استفاده کنی:
فرض کنیم مدل ما به این شکل هستش:
public class MyModel
{
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string Title { get; set; }
public string Link { get; set; }
public int Visit { get; set; }
}
و فرض می کنیم ViewModelای داریم که به این شکل هستش:
public class MyViewModel
{
public int Id { get; set; }
[Display(Name = "عنوان")]
public string VTitle { get; set; }
[Display(Name = "تعداد بازدید")]
public int Visit { get; set; }
}
تذکر: برای اینکه نشون بدیم ViewModel میتونه با Model فرق داشته باشه Link رو در اون قرار ندادیم.
حالا با دستور زیر اطلاعات رو دریافت می کنیم:
var model = db.MyModels.Select(
ms => new MyViewModel
{
Id = ms.Id,
VTitle = ms.Title,
Visit = ms.Visit
}).ToList();
نقل قول: Model and View Model
سلام
اقای نجفی پور بازهم ما رو شرمنده کردید :)
با توجه به گفته شما :
ApplicationDbContext db = new ApplicationDbContext();
var model = db.Users.Select(MS => new UserInfo
{
User = MS.name + " " + MS.family,
UserId = MS.Id,
roleId = MS.Roles.FirstOrDefault().RoleId,
RoleName = "؟؟؟"
}).ToList();
قصد دارم نام کاربران همراه با رولشون در اختیار داشته باشم از انجایی که در این مثال هر کاربر یک رول داره از Roles.FirstOrDefault استفاده کردم و گرنه می شد لیستی از رول های کاربر رو در اختیار داشت
مشکلی که الان برام به وجود اومده اینکه نمی دونم چطور می شه نام رول رو بدست اورد...
نقل قول: Model and View Model
خواهش می کنم :لبخندساده:
توی مثال Identity کنترلری به اسم UserAdmin داریم که در Index نام تمامی کاربرها رو لیست می کنه. در اکشن Details تمام Role های کاربر مورد نظر رو نمایش میده.
برای اینکار هم از تابع GetRolesAsync که مربوط به کلاس ApplicationUserManger هست استفاده می کنه. سورس اصلی رو که نگاه کردم متاسفانه متوجه رونده کار نشدم :لبخندساده:
اما برای اینکاری که میخواید انجام بدید یه عبارتی نوشتم که نمیدونم تا چه حد بهینه یا درست هستش اما جواب میده:
var roles = db.Roles.ToList();
var model = db.Users.Select(MS => new RolesView
{
User = MS.Name,
UserId = MS.Id,
RoleId = MS.Roles.FirstOrDefault().RoleId,
RoleName = roles.Where(j => j.Id == MS.Roles.FirstOrDefault().RoleId).Select(a => a.Name).FirstOrDefault()
}).ToList();
پ.ن: قطعا کدهای بهینه و بهتری هم هستش. اگه به نتایج بهتری رسیدید من رو هم در جریان بذارید. مرسی
نقل قول: Model and View Model
متاسفانه این خطا رو میده:
Unable to create a constant value of type 'Microsoft.AspNet.Identity.EntityFramework.Identit yRole'. Only primitive types or enumeration types are supported in this context.
نقل قول: Model and View Model
نقل قول:
نوشته شده توسط
alireza_rashvand
متاسفانه این خطا رو میده:
Unable to create a constant value of type 'Microsoft.AspNet.Identity.EntityFramework.Identit yRole'. Only primitive types or enumeration types are supported in this context.
این کد برای خودم کار کرد. و خطا هم عجیب به نظر میاد. اگه یه پروژه ی جدا درست کنید و اینجا آپلود کنید ممنون میشم. اینطوری فکر کنم بشه بهتر بررسی کرد.