مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

android

عضویت از 1395/07/29

راهنمایی برای گرفتن نقش های یک کاربر

  • یکشنبه 23 خرداد 1400
  • 14:30
تشکر میکنم

سلام 

من سه جدول به نام

User

Role

UserRole

دارم که به هام ارتباط دارند و جدول userRole جدول واسط می باشد 

در متدی این متد میخوام به جای اینکه همه ی کاربران رو لود کنم در dropdown میخوام فقط اون کاربرایی که نقش کاربر عادی دارند رو بیارم ممنون میشم راهنمایی کنید 

 public List<SelectListItem> GetEducatorForManageCourse()
        {
            return _context.Users.Select(d => new SelectListItem()
            {
                Text = d.UserName,
                Value = d.UserId.ToString()
            }).ToList();
        }

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

محمد شعبانی (مدرس)

عضویت از 1399/07/27

  • یکشنبه 23 خرداد 1400
  • 19:16

سلام دوست من

لطفا بیشتر توضیح بدین که چه کار می خواهین انجام بدین؟

اگر منظور کاربرهایی که نقش عادی دارند رو می خواهین، در جدول UserRole بیایید مقادیری رو بفرستین

مثلا اگر مقدار UserRole برابر با normal بود تشخیص بده که کاربر از نوع عادی هست

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

موفق باشین :)

کاربر سایت

android

عضویت از 1395/07/29

  • دوشنبه 24 خرداد 1400
  • 12:39

جدول User:

 public class User
    {
        [Key]
        public int UserId { get; set; }

        [DisplayName("نام کاربری")]
        [Required(ErrorMessage = "لطفا {0}  را وارد کنید.")]
        [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        public string UserName { get; set; }

        [DisplayName("ایمیل")]
        [Required(ErrorMessage = "لطفا {0}  را وارد کنید.")]
        [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        [EmailAddress(ErrorMessage = "ایمیل وارد شده معتبر نمی باشد.")]
        public string Email { get; set; }

        [DisplayName("کلمه عبور")]
        [Required(ErrorMessage = "لطفا {0}  را وارد کنید.")]
        [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        public string Password { get; set; }

        [DisplayName("کد فعال سازی")]
        [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        public string ActiveCode { get; set; }

        [DisplayName("وضعیت")]
        public bool IsActive { get; set; }

        [DisplayName("آواتار")]
        [MaxLength(400, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        public string UserAvatar { get; set; }

        [DisplayName("تاریخ ثبت نام")]
        public DateTime RegisterDate { get; set; }
        public bool IsDelete { get; set; }

        #region Relation

        public virtual List<UserRole> UserRoles { get; set; }
        public virtual List<Wallet.Wallet> Wallets { get; set; }
        public virtual List<Course.Course> Courses { get; set; }
        //public virtual List<Article.Article> Articles { get; set; }
        //public virtual List<Order.Order> Orders { get; set; }
        //public virtual List<UserCourse> UserCourses { get; set; }
        //public List<UserDisCountCode> UserDisCountCodes { get; set; }
        public virtual List<CourseComment> CourseComments { get; set; }
        #endregion

      
    }

جدول Role:

public class Role
    {
        [Key]
        public int RoleId { get; set; }

        [DisplayName("عنوان نقش")]
        [Required(ErrorMessage = "لطفا {0}  را وارد کنید.")]
        [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        public string RoleTitle { get; set; }

        [Display(Name = "نام نقش")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        public string RoleName { get; set; }

        public bool IsDelete { get; set; }
        #region Relation

        public virtual List<UserRole>UserRoles  { get; set; }
        public List<RolePermission>RolePermissions  { get; set; }


        #endregion
    }

 

جدول واسط UserRole:

 public class UserRole
    {
        [Key]
        public int UR_Id { get; set; }
        public int UserId { get; set; }
        public int RoleId { get; set; }

        #region Relation

        public virtual UncoLearn.Data.Entities.User.User User { get; set; }
        public virtual Role Role { get; set; }

        #endregion

 

متدی برای گرفتن userهایی که فقط نقش خاصی دارند:دراین قسمت تمام userها لود میشه و من نمیخوام همه لود شه.

 

 List<SelectListItem> GetEducatorForManageCourse();
 public List<SelectListItem> GetEducatorForManageCourse()
        {
            return _context.Users.Select(d => new SelectListItem()
            {
                Text = d.UserName,
              Value = d.UserId.ToString()
            }).ToList();
         
                
        }
        

 

گرفتن userها و ارسال به DropDownList:

 var educator = _courseService.GetEducatorForManageCourse();
 ViewData["educator"] = new SelectList(educator, "Value", "Text");

 

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)