2013-01-09 40 views
5

Tôi đang sử dụng nhà cung cấp thành viên asp.net mvc 4. Tôi muốn nhận danh sách người dùng và vai trò của họ mà không cần Roles.GetRolesForUser() cho mỗi người dùng.Lấy danh sách người dùng và vai trò của họ

Trong đơn đăng ký của tôi, yêu cầu nghiệp vụ nêu rõ rằng người dùng sẽ chỉ được chỉ định một vai trò.

gì tôi đang thực hiện:

[GridAction] 
    public ActionResult _GetUsers() 
    { 
     var users = Membership.GetAllUsers().Cast<MembershipUser>().Select(n => new AdminAccountEditModel 
     { 
      Role = Roles.GetRolesForUser(n.UserName).FirstOrDefault(), 
      IsApproved = n.IsApproved, 
      Email = n.Email, 
      UserName = n.UserName 
     }).ToList(); 

     return View(new GridModel(users)); 
    } 

Rất không hiệu quả. Làm thế nào để sửa lỗi này?

Cảm ơn.

Trả lời

0

Tôi vừa kết thúc bằng EF và LINQ để có kết quả.

[GridAction] 
    public ActionResult _GetUsers() 
    { 

     var users = from user in xcsnEntities.Users 
        select new 
        { 
         Role = user.Roles.FirstOrDefault().RoleName, 
         IsApproved = user.Membership.IsApproved, 
         Email = user.Membership.Email, 
         UserName = user.UserName 
        }; 

     return View(new GridModel(users)); 
    } 
1

Trong quá khứ tôi đã lừa một phần khi sử dụng nhà cung cấp thành viên tiêu chuẩn và đã viết rất nhiều truy vấn phức tạp trực tiếp với các bảng trong sql. Những gì bạn đang tìm kiếm là một sự tham gia đơn giản.

Các vấn đề liên quan