我正在尝试根据用户所属的组提取所有Institutions
和非删除InstitutionUsers
。 Institution
有InstitutionUsers
而InstitutionUsers
有InvestigatorGroups
(机构也有群组)。我知道我的问题在哪里,非常感谢任何帮助
public class InstitutionRepository : IInstitutionRepository
{
public IEnumerable<Institution> GetInstitutionGroupUsers(IEnumerable<int> groupIds)
{
using (var context = new GameDbContext())
{
return context.Institutions
.Include(i => i.InstitutionUsers)
.Where(i => i.InstitutionUsers
.Select(g => g.IsTrashed)
.Contains(false) && groupIds.Contains(i.InstitutionUsers.Select(g => g.InvestigatorGroupUsers.Select(x => x.InvestigatorGroupId)))).ToArray().ToList();
}
}
答案 0 :(得分:0)
如果我理解正确,您希望获得一个Institution
列表,其中InstitutionUser
至少有IsTrashed=false
个InvestigationGroup
并且与{Id
至少有一个groupIds
相关联1}}包含在传递的return context.Institutions
.Include(i => i.InstitutionUsers)
.Where(i => i.InstitutionUsers.Any(u => !u.IsTrashed &&
u => u.InvestigatorGroupUsers.Any(gu => groupIds.Contains(gu.InvestigatorGroupId))))
.ToList();
过滤器中。
如果这是真的,那么以下查询应该产生所需的结果
addChild