Как отфильтровать результаты запроса, если имя содержит какое-либо из слов, которые ищут? - PullRequest
0 голосов
/ 31 августа 2010

Я пытаюсь изменить некоторый код, который возвращает результаты из базы данных.В настоящее время код выглядит следующим образом и соответствует любым фондам, имеющим имя, например, поисковый термин.

        var ret = (from funds in queryable
                where
                    SqlMethods.Like(funds.Name, searchTerm)
                select
                    funds);

Проблема в том, что оно слишком конкретное.Если поисковым термином является «рост пенсии», будут возвращаться только результаты, в названии которых указан «рост пенсии».Я хотел бы изменить это, чтобы вернуть все фонды, в названии которых есть "пенсия" или "рост" (или любая другая комбинация поисковых терминов, которую пользователь может включить).разделяет поисковый термин на его составные части и применяет оператор SQL «in» к запросу, например in ('pension', 'growth') или что-то подобное, чтобы он возвращал все, что имело некоторые термины, но это не похоже наoption.

Может кто-нибудь предложить другой способ, которым я мог бы пойти по этому поводу?Спасибо.

1 Ответ

1 голос
/ 31 августа 2010

Вы можете попробовать использовать метод Contains() в списке:

var myListOfWords = new List<string>{"pension","growth","42"};
var result = from funds in queryable
             where myListOfWords.Contains(funds.Name)
             select funds;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...