获取用户及其角色列表

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

非常低效。我该怎么修复它?
谢谢。
2个回答

1
过去,当我使用标准会员提供程序时,有些作弊行为,直接针对 SQL 表编写了许多复杂的查询。你需要的是一个简单的连接。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接