2010-12-09 48 views
2

角色的用户列表我的查询出现了什么问题?这是使用标准的Membership表。MVC Linq选择具有

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

回答

2

我希望你正在尝试(或者说LINQ试图)使用clientRole作为select语句的where子句。你只能发送简单的类型参数。

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

但是它可能是,如果你只是在反向穿越(这听起来不错吧?)更容易。你应该可以这样做:

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

Legend mate。正是我在找什么。希望你在3个小时之前告诉我了哈哈。 – Dang 2010-12-09 05:24:17