C# Linq选择子对象具有匹配子对象的父对象

C# Linq选择子对象具有匹配子对象的父对象,c#,linq,C#,Linq,我将如何编写一个LINQ语句来选择在其集合中具有匹配子对象的父对象?下面是示例类 class Parent { int ID { get; set; } string Name { get; set; } List<Child> Children { get; set; } } class Child { int ID { get; set; } string Name { get; set; } string Nickname {

我将如何编写一个LINQ语句来选择在其集合中具有匹配子对象的父对象?下面是示例类

class Parent {
    int ID { get; set; }
    string Name { get; set; }
    List<Child> Children { get; set; }
}

class Child {
    int ID { get; set; }
    string Name { get; set; }
    string Nickname { get; set; }
}
类父类{
int ID{get;set;}
字符串名称{get;set;}
列出子项{get;set;}
}
班童{
int ID{get;set;}
字符串名称{get;set;}
字符串昵称{get;set;}
}

在上面的示例中,我想返回包含具有特定昵称的子对象的所有父对象。

这是直截了当的Linq to对象:

listOfParents.Where(p => p.Children.Contains(childObjectToMatch))
对于Linq to实体,如果子对象未作为实体跟踪,则可能需要在子对象标识符字段中匹配:

int childObjectIdToMatch = childObjectToMatch.ID;
dbContext.Parents.Where(p => p.Children.Any(c => c.ID == childObjectIdToMatch));

投票否决这个问题相当苛刻。在输入这个抽象答案之前,我搜索了SO和Google。如果这里的工具更好,也许我就不会有重复的问题了。这是我的谷歌搜索“linq基于子对象选择父对象”的最高结果。如果我有代表,我会取消标记这是一个重复;链接的问题提供了类似的答案,但问题标题的措词方式在直觉上并不相似。许多人在没有仔细思考的情况下,行动太快了。这很烦人,有时甚至让人心烦意乱。