获取用户及其角色的列表

Mik*_*ike 5 asp.net asp.net-mvc asp.net-membership

我正在使用会员提供商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));
    }
Run Code Online (Sandbox Code Playgroud)

非常低效.我该如何解决?

谢谢.

Mik*_*ike 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));
    }
Run Code Online (Sandbox Code Playgroud)