LINQ to Entities预测

时间:2011-04-17 10:25:43

标签: asp.net-mvc-3 linq-to-entities

更新:我基本上想要获取所有权限的列表以及给定角色的所有权限列表。然后,我想将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;
        }
    }

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您已经提取了所有数据,现在您只需要检查授权是否在permissionsForRole列表中,例如:

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