【发布时间】:2009-09-11 15:27:31
【问题描述】:
我有以下数据库表:
表 1:用户
UserId
用户名
表 2:角色
角色 ID
角色名称
表 3:UserRole
UserId
RoleId
一个用户可以有很多角色,一个角色可以有很多用户。
当我使用 EF 对此进行建模时,我得到一个带有 UserRole 实体列表的用户实体。我想要的是具有角色实体列表的用户。
有没有办法对此建模或通过 LINQ 查询以返回用户实体和它们所属的角色实体?
谢谢
德克
【问题讨论】:
我有以下数据库表:
表 1:用户
UserId
用户名
表 2:角色
角色 ID
角色名称
表 3:UserRole
UserId
RoleId
一个用户可以有很多角色,一个角色可以有很多用户。
当我使用 EF 对此进行建模时,我得到一个带有 UserRole 实体列表的用户实体。我想要的是具有角色实体列表的用户。
有没有办法对此建模或通过 LINQ 查询以返回用户实体和它们所属的角色实体?
谢谢
德克
【问题讨论】:
如果您为多对多关系建模,则中间的表格不会出现在您的概念模型中。 (即你不会有一个派生自“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();
}
【讨论】: