LINQ SelectMany возвращает дочерний элемент вместо родительского при вложенной фильтрации

#c# #linq

Вопрос:

 var someQuery = context.Parents.Select(c =gt; c.SomeChildren.SelectMany(rm =gt; rm.SomeGrandchildren.Where(r =gt; r.Type == "Type 1")));  

Этот код/запрос возвращает объекты SomeChildren. Я хотел бы выполнить ту же фильтрацию, но вернуть родительские объекты. По какой-то причине это не прямолинейно. Я попытался применить » Где «вместо » Выбрать», но синтаксис не дает мне вариантов.

Как я могу вернуть родительский объект, используя ту же вложенную фильтрацию

Заранее большое вам спасибо

Ответ №1:

не могли бы вы, пожалуйста, попробовать это ?

 var sompeQuery = context.Parents  .Where(c =gt; c.SomeChildren.SelectMany(x =gt; x.SomeGrandChildren)  .Any(r =gt; r.Type == "Type 1")  );