更新:我基本上想要获取所有权限的列表以及给定角色的所有权限列表。然后,我想将SelectListItems列表中的每个权限标记为已经属于Role
的选项我有三张桌子:
项目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;
}
}
我想要做的是在投影中有一个条件选择,所以当我显示列表时,我可以显示已经与角色关联的权限。
提前致谢。
答案 0 :(得分:1)
如果我理解正确,您已经提取了所有数据,现在您只需要检查授权是否在permissionsForRole
列表中,例如:
IEnumerable<SelectListItem> selectList = from p in permissions
select new SelectListItem
{
Text = p.PermissionName,
Value = p.PermissionId.ToString(),
Selected = permissionsForRole.Contains(p)
};