نمایش نتایج 1 تا 2 از 2

نام تاپیک: شرط گذاشتن برای چند جدولی که باهم include شدن

  1. #1

    شرط گذاشتن برای چند جدولی که باهم include شدن

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

    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
    }



    [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




    }


    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



    public List<SelectListItem> GetEducatorForManageCourse(string roleName)
    {
    return _context.Users.Include(u => u.UserRoles).ThenInclude(r => r.Role).Select(d => new SelectListItem()
    {
    Text = d.UserName,
    Value = d.UserId.ToString()
    }).ToList();
    }

  2. #2
    کاربر دائمی آواتار hamzehsh
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    https://samanhis.ir
    سن
    42
    پست
    166

    نقل قول: شرط گذاشتن برای چند جدولی که باهم include شدن

    سلام از کلاسهای خود Identity استفاده کن
    هر جا که لازم داشتی همونها رو override کن اینطوری راحتتری مشکلاتت هم کمتر میشه
    متدی که نوشتی توش شرط نگذاشتی که چی رو برگدونه. من معمولا برای جستجو از نشاسه استفاده میکنم
    این متدی هست که خودم استفاده میکنم.
    ابتدا



    public async Task<List<UsersViewModel>> GetUsersInRoleAsync(string RoleId)
    {
    var userIds = (from r in Roles
    where (r.Id == RoleId)
    from u in r.Users
    select u.UserId).ToList();

    return await _userManager.Users.Where(user => userIds.Contains(user.Id))
    .Select(user => new UsersViewModel
    {
    Id = user.Id,
    Email = user.Email,
    UserName = user.UserName,
    PhoneNumber = user.PhoneNumber,
    FirstName = user.FirstName,
    LastName = user.LastName,
    BirthDate = user.BirthDate,
    IsActive = user.IsActive,
    Image = user.Image,
    RegisterDateTime = user.RegisterDateTime,
    Roles = user.Roles.Select(u => u.Role.Name),

    }).AsNoTracking().ToListAsync();
    }

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: پنج شنبه 05 تیر 1393, 12:40 عصر
  2. سوال: فراخوانی تابع فایل include شده
    نوشته شده توسط MoMo121 در بخش PHP
    پاسخ: 2
    آخرین پست: یک شنبه 03 شهریور 1392, 21:35 عصر
  3. مشکل در include
    نوشته شده توسط yasgig در بخش PHP
    پاسخ: 4
    آخرین پست: سه شنبه 10 آذر 1388, 19:12 عصر
  4. مشکل هدر gd با include
    نوشته شده توسط هادی2020 در بخش PHP
    پاسخ: 7
    آخرین پست: دوشنبه 13 مهر 1388, 11:02 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •