Я уверен, что, вероятно, есть способ сделать это с чистым LINQ
, но я не уверен, действительно ли это хорошая идея: ИМХО, люди иногда склонны переваривать свои LINQ
запросы ни для чего конкретногоиная причина, чем LINQ
очень крутой и все, заканчивающийся запросами, которые очень трудно понять, просто взглянув на них.
Почему бы вам не реализовать метод расширения, которыйберет Monument
сущностей и выясняет, соответствует ли определенный string[]
вашим критериям?
Таким образом, ваше LINQ
выражение не может быть проще:
var q = from m in db.Monument
where m.ContainsAllSearchTerms(terms)
select m; //readable and anyone understands right away what is going on here
Быть ContainsAllSearchTerms(this Monument m, string[] terms)
соответствующий метод расширения.