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)
};
谢谢...所以当你指出时很明显。很好的帮助。 – abarr 2011-04-17 10:51:39
对不起A没有工作。不能在permissionsForRole上使用Contains。我一直在一个小时之内甩掉它,但似乎无法做到。 – abarr 2011-04-17 12:06:21
'permissions'的类型是什么?什么是'permissionsForRole'类型? – NOtherDev 2011-04-17 12:07:44