繁体   English   中英

实体框架 4:将多个关联表映射到实体

[英]Entity Framework 4: Mapping several assocation tables to entities

我对实体框架和 ORM 有点陌生。 我有一个类似这样的简单数据库模式。

User:
   Id
   Name

Group:
   Id
   Name

Role:
   Id
   Name

组和用户之间存在多对多。 此外,用户和角色之间存在多对多。 但是,角色是每组的。 所以我们可以有以下内容:

用户 A 属于组 1,具有角色 a、b、c,属于组 2,但具有角色 d、e、f。

所以我们有一些像这样的关联表:

UserRoles:
   UserId -> User.Id
   RoleId -> Role.Id

UserGroups
   UserId -> User.Id
   GroupId -> Group.Id

GroupRoles:
   GroupId -> Group.Id
   RoleId -> Role.Id

因此,在我的实体中,我想要一个角色实体、一个具有角色集合的用户实体和一个具有用户集合和角色集合的组实体。

当我加载一个组时,我只想加载该组中的用户以及该组的用户角色。

所以我的问题:在上面的例子中。 如何做到这一点,当我加载第 1 组时,我想看到用户 A 的角色 a、b、c 而不是角色 d、e、f。

谢谢,JR

您需要调用 Group.User.Roles 之类的东西来获取用户在组中所属的所有角色。 就像是:

var group1 = objectContext.Groups.Where(x => x.GroupId == 1);
var userARoles = group1.Users.Where(x => x.UserId == "A").Roles;

这对你有帮助吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM