2

我下面的查询有什么问题?这是使用标准的成员资格表。

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”)。

4

1 回答 1

2

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

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

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

var clientRole = rushDB.aspnet_Roles.Single(r => r.LoweredRoleName == "client" );
return View(clientRole.aspnet_Users.ToList());
于 2010-12-09T03:20:37.957 回答