列出未链接到给定父级的子记录

时间:2016-03-14 13:59:40

标签: c# entity-framework linq

通过多对多关系查找未链接到某个父记录的所有子记录的最佳方法是什么?他们可以有任何其他父母,或根本没有。

我正在尝试这样的事情:

children = db.Children
  .Where(c => !c.Parents
     .Where(x => x.parentId == knownParentId)
     .Any())
  .ToList();

...它会返回一条我感兴趣的记录,但不会返回我认识的其他记录(可能在我不应该使用的时候使用'Any')

由于

1 个答案:

答案 0 :(得分:2)

您可以使用All扩展方法,如下所示:

children = db.Children.Where(c => c.Parents.All(x => x.parentId != knownParentId)).ToList();

或者您仍然可以使用Any扩展方法:

children = db.Children.Where(c => !c.Parents.Any(x => x.parentId == knownParentId)).ToList();