2013-01-09 2 views
5

회원 공급자 asp.net mvc 4를 사용하고 있습니다. 각 사용자에 대해 Roles.GetRolesForUser()없이 사용자 및 역할 목록을 얻고 싶습니다.사용자 및 역할 목록 얻기

비즈니스 요구 사항에는 사용자에게 한 가지 역할 만 할당된다는 내용이 나와 있습니다. 나는 현재하고 있어요 무엇

:

[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)); 
    } 

매우 비효율적. 이 문제를 어떻게 해결할 수 있습니까?

감사합니다.

답변

0

나는 EF와 linq를 사용하여 결과를 얻었습니다.

[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

과거에는 표준 회원 공급자를 사용할 때 다소기만 당했고 SQL의 테이블에 대해 많은 복잡한 쿼리를 직접 작성했습니다. 당신이 찾고있는 것은 단순한 참여입니다.

관련 문제