Linq多对多的关系

时间:2011-01-12 06:19:34

标签: asp.net-mvc linq many-to-many

我的数据库中有3个表。 AdminGroup,AdminSection和加入这两个AdminAccess。 AdminGroup => AdminGroupId,AdminId AdminSection => AdminSectionId,Code,Desc AdminAccess => AdminSectionId,AdminGroupId

我需要获取AdminId提供的所有代码列表。 这就是我到目前为止所做的:

this.AdminGroupRepository.List().Where(x => x.Admin.Any(y => y.AdminId == loginEntity.AdminId))

但这给了我一个AdminGroup列表,我只需要一个代码列表。

alt text

2 个答案:

答案 0 :(得分:2)

查看“选择”以将单个属性或多个属性提取到匿名对象中。

.Select(x => x.Code)

答案 1 :(得分:0)

我解决了这个问题:

            var loginRoles =
                this.AdminSectionRepository.List().Where(
                    x => x.AdminGroup.Any(y => y.Admin.Any(q => q.AdminId == loginEntity.AdminId))).Select(
                        q => q.Code);