Принцип поиска Linq и дочерняя коллекция с оператором OR - PullRequest
0 голосов
/ 19 октября 2018

У меня есть родительская сущность, которая имеет ICollection дочерней сущности.Я хотел бы найти родительскую и дочернюю коллекцию, используя OR.Так что, если parentEntity.Name ИЛИ любой из childrentEntity.PropertyValue содержит searchTerm, тогда верните родительскую сущность.

Я предполагал, что SelectMany сгладит детей и позволит мне легко их искать.Я также попытался «связать» мой запрос, но это отфильтровало результат и не сработало - мне нужно выражение OR.

Мой запрос выглядит так

var result = from v in parentEntity
             where v.Name.Contains(searchTerm)
             || v.ChildCollection.SelectMany(x => 
                         x.PropertyValue.Contains(searchTerm))
             select v;

1 Ответ

0 голосов
/ 19 октября 2018

Я думаю, вы ищете Any метод расширения:

var result = from v in parentEntity
             where v.Name.Contains(searchTerm)
             || v.ChildCollection.Any(x => 
                         x.PropertyValue.Contains(searchTerm))
             select v;
...