【发布时间】:2016-07-09 18:31:43
【问题描述】:
我想在我的视图中显示三列:
======================================
UserName | Email | Role Name
======================================
codelover12 code@g.g Student
kimmy45634 kimy@c.c Teacher
======================================
所以一开始我的想法是这样的
我可以在AspNetUsers 表中加入Id 和UserId 在AspNetUserRoles 表中,也可以在AspNetRoles 中加入Id,这样我就可以弄清楚谁担任哪个角色。
我是这样尝试的:
var model = from users in db.Users
join userRoles in db.AspNetUserRoles on users.Id equals roles.UserId
join role in db.Roles on role.Id equals userRoles.RoleId
select new { users.UserName, users.Email, role.Name };
但发现我无法访问 AspNetUserRoles。 非常感谢您的帮助。
【问题讨论】:
-
“无法访问 AspNetUserRoles”具体是什么意思?您的查询是否给您一个错误?至少它应该是
user.Id equals userRoles.UserId,尽管您应该考虑改用导航属性。 -
它在 db.AspNetUserRoles 上给我一个错误,说 ApplicationDbContext 不包含“AspNetUserRoles”的定义
-
我猜这是多对多表,EF 不会为这些表创建实体。相反,您应该使用导航属性。类似
from user in db.Users from role in user.Roles
标签: c# mysql asp.net .net linq