• 1397/03/16

MyEshopRoleProvider :

باسلام و با تشکر از دوره فوق العادتون

یه سوال داشتم در مورد

        public override string[] GetRolesForUser(string username)
        {
            using (MyEshop_DBEntities db=new MyEshop_DBEntities())
            {
                return db.Users.Where(u => u.UserName == username).Select(u => u.Roles.RoleName).ToArray();
            }        }

برنامه ای که من می نویسم هر کاربر می تونه چندین نقش داشته باشه و جداولم users,roles,userroles هر کدی نوشتم که بتونه چندین نقش رو بخونه ولی به خطا خوردم میشه لطفا یه راهنمایی کنید و یا یه توضیح مختصری بهم بدین لطفا

پیغام خطام به این صورت که می گه نمی تونه به صورت string  برگردونه

با تشکر از شما

  • 1397/03/16
  • ساعت 13:13

سلام 

باید کوئری رو روی جدول userRoles بزنید و بعد با Role باید join کنید و name نقش ها را برگردانید 


        public override string[] GetRolesForUser(string username)
        {
            using (MyEshop_DBEntities db=new MyEshop_DBEntities())
            {
int userId = db.users.First(u=>u.UserName==username).userid;
                return db.userroles.Where(u => u.UserId == userId ).Select(u => u.Roles.RoleName).ToArray();
       }
}

 


  • 1397/03/16
  • ساعت 13:17

عالی بود مهندس .ممنون بابت زحماتت

موفق باشی ایشاله


logo-samandehi