我有一个页面表,我有一个PagesRoles表的PageId,角色ID链接到ASP.Net成员角色表和页表。

我想以某种方式返回页面链接到当前登录用户的角色。

用户可以被一个以上的作用。一个页面可以有针对它多于一个的作用。

我有了IQueryable的一个外键属性Page类。 PageRoles具有的IQueryable到ASPNET角色表(IQueryable的)和IQueryable的

由于

修改

使用亚当的回答让具有分配给它的角色相匹配的当前登录的用户的角色,我有一个问题,添加一个所有页面。我有一个具有PAGEID外键和一个类别ID菜单表。

我想与为4的类别ID对于那些有PAGEID我需要确保的是,用户可以看到基于他的角色页面返回所有菜单项。我认为亚当的查询将做到这一点。所以我想我需要的是一个UNION,所有菜单项返回,其中pageid是零和类别ID为4,所有菜单项返回其中类别ID为4,加入到页面 - > PageRole-> ASPNetRole,当前用户的角色是在ASPNetRole结果

有帮助吗?

解决方案

如果您正在使用亚音速3像查询下面应该工作:

var pagesForUser = from pages in Pages.All()
    join pagesRoles in PagesRoles.All() on pages.Id equals pagesRoles.PageID
    join roles in Roles.All() on pagesRoles.RoleId equals roles.Id
    where User.GetRoles().Contains(roles.Name)
  select pages;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top