我已经上传了两张图片。
我只想在简单表(html)中使用UserName(AspNetUsers表中的Colmun [UserName])显示RoleName(Colmun [Name]在AspNetRoles表中)查看即具有所有相应角色的用户。如何使用LINQ执行此操作?
更新1:我确实尝试了以下但是没有工作
var result = from tb1 in context.Roles
join tb2 in context.Users on tb1.Id equals tb2.Id
select new { tb1.Name, tb2.UserName };
但其错误实际上我希望Userid
表中的所有用户Role
代替tb1.Id
[在LINQ代码中]以与Userid
匹配User
1}}表[tb2.Id
]。
当我尝试通过Roles表访问Userid时,就像Context.Roles.Users
coz Users
一样,这里是角色表的外键。
答案 0 :(得分:1)
请尝试以上示例
var result = from tb1 in context.Users
from tb2 in tb1.Roles
join tb3 in context.Roles on tb2.RoleId equals tb3.Id
orderby tb1.UserName, tb3.Name /*optional*/
select new { tb3.Name, tb1.UserName }
但要满足您的要求:
var result = from tb1 in context.Users
from tb2 in tb1.Roles
join tb3 in context.Roles on tb2.RoleId equals tb3.Id
where tb3.Name == "Administrator"
select tb1.Id
答案 1 :(得分:0)
将[AspNetRoles.[Id]
列保留为主键,将[AspNetUsers].[Id]
列保留为外键。让我们写这样的查询
var result = (from R in context.AspNetRoles
join U in context.AspNetUsers
ON R.Id equals U.Id
select new{
RoleName=R.Name,
UserName=U.UserName});