LINQ to Entities预测

LINQ to Entities预测

问题描述:

更新:我基本上想得到一个给定角色的所有权限列表和所有权限列表。那么我想标志着SelectListItems的列表中的每个许可的选择时,他们已经属于该角色LINQ to Entities预测

我有三个表:

项目1 *角色-权限

我想创建和使用具有列表中的所有权限,投影IEnumerable的,但是当我投射到SelectItemList它标识已经与一个特定的角色相关的权限:

public IEnumerable GetAllPermissionsPLusRole(int projectid, int roleid) 
    { 
     using (var db = new Entities()) 
     { 
      var permissions = (from p in db.Permissions 
           select p).ToList(); 

      var permissionsForRole = from r in db.Roles 
            where r.RoleId == roleid && r.PrjectProjectId == contractid 
            select r.Permissions.ToList(); 

      IEnumerable<SelectListItem> selectList = from p in permissions select new SelectListItem { Text = p.PermissionName, Value = p.PermissionId.ToString()}; 
      return selectList; 
     } 
    } 

我想要做的是在投影中有一个条件Selected,所以当我显示列表时,我可以显示已经与角色关联的权限。

在此先感谢。

如果我的理解对不对,你已经获取的所有数据,现在你只需要检查,如果获准在permissionsForRole列表,即这样的:

IEnumerable<SelectListItem> selectList = from p in permissions 
    select new SelectListItem 
    { 
     Text = p.PermissionName, 
     Value = p.PermissionId.ToString(), 
     Selected = permissionsForRole.Contains(p) 
    }; 
+0

谢谢...所以当你指出时很明显。很好的帮助。 – abarr 2011-04-17 10:51:39

+0

对不起A没有工作。不能在permissionsForRole上使用Contains。我一直在一个小时之内甩掉它,但似乎无法做到。 – abarr 2011-04-17 12:06:21

+0

'permissions'的类型是什么?什么是'permissionsForRole'类型? – NOtherDev 2011-04-17 12:07:44