MVC Linq选择具有角色的用户列表

时间:2010-12-09 03:10:29

标签: asp.net-mvc linq asp.net-membership role

我的查询有什么问题?这是使用标准的会员表。

var clientRole = rushDB.aspnet_Roles.Single(r => r.LoweredRoleName == "client" );
        //var users = rushDB.aspnet_Users.Where(u => u.aspnet_Roles.Contains(client)).AsEnumerable();

        var users = from u in rushDB.aspnet_Users
                        where u.aspnet_Roles.Contains(clientRole)
                    select u;

        return View(users.ToList());

我的观点中出现此错误... 无法创建“RushToIt.Models.aspnet_Roles”类型的常量值。在此上下文中仅支持原始类型(例如Int32,String和Guid')。

1 个答案:

答案 0 :(得分:2)

我希望您正在尝试(或者更确切地说LINQ正在尝试)将clientRole用作select语句的where子句。您只能发送简单类型参数。

相反,您需要评估内联角色。

然而,如果你只是反向移动(这听起来不错,对吧?)可能会更容易。你应该能够做到这一点:

var clientRole = rushDB.aspnet_Roles.Single(r => r.LoweredRoleName == "client" );
return View(clientRole.aspnet_Users.ToList());