2013-01-09 15 views
5

Utilizzo il provider di appartenenze asp.net mvc 4. Vorrei ottenere un elenco di utenti e dei relativi ruoli senza Roles.GetRolesForUser() per ciascun utente.Ottenere un elenco di utenti e dei relativi ruoli

Nella mia applicazione, i requisiti aziendali stabiliscono che a un utente verrà assegnato sempre un ruolo.

Quello che sto facendo attualmente:

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

molto inefficiente. Come posso risolvere questo?

Grazie.

risposta

0

Ho appena finito di usare EF e linq per ottenere il risultato.

[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

In passato ho ingannato un po 'usando il provider di appartenenza standard e ho scritto molte query complesse direttamente contro le tabelle in sql. Quello che stai cercando è un semplice join.

Problemi correlati