我有以下数据库表:
表1:用户
用户ID用户名
表2:角色
RoleId
Rolename
表3:UserRole
UserId
RoleId
用户可以拥有多个角色,角色可以拥有多个用户。
当我使用EF对其进行建模时,我得到一个User实体,其中包含UserRole实体列表。我想要的是一个具有角色实体列表的用户。
有没有办法通过LINQ对此进行建模或查询以返回用户实体及其所属的角色实体?
感谢
德克
答案 0 :(得分:0)
如果您建模多对多关系,则中间的表格不会出现在概念模型中。 (即你没有从“EntityObject”派生的“UserRole”类)
如果您使用EF向导,请确保您的表“UserRole”仅包含这两个字段而不包含其他字段。还要确保已在两个字段上创建了外键约束。如果你有,那么向导将创建一个正确的多对多关系。
然后查询可能看起来像
using(MyObjectContext context = new MyObjectContext(someParameters)){
var theUser = (from user in context.UserSet
where user.UserId = XY
select user).First();
theUser.Roles.Load();
}