实体框架4:将几个关联表映射到实体
问题描述:
我是实体框架和ORM的新手。我有一个简单的数据库模式,就像这样。实体框架4:将几个关联表映射到实体
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
所以,在我的实体我想有一个角色entitiy,与角色的集合,并与用户的集合组实体用户实体和一组角色。
当我加载一个组时,我只想加载该组中的用户,并且只加载该组的用户角色。
所以我的问题: 在上面的例子。我如何做到这一点,当我加载组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;
这对您有帮助吗?
将测试并让你知道。谢谢。 – 2011-06-05 18:28:46
这会返回userA的所有角色,而不管它们属于哪个组。我必须将userA的角色与group1的角色相交以获得我想要的集合。谢谢。 – 2011-06-17 16:31:12