Сформировать запрос до базы

Необходимо в таблице базы данных MSSQL найти совпадение строк, если в поле Name есть одно из двух слов или более [Пример: ("Slovo1", "Slovo2").] Знаю как написать на чистом SQL, но не знаю как реализовать в коде.

SELECT TOP (1000) [Id]
                 ,[Name]
FROM [DATABASE].[dbo].[TABLE]
WHERE [Name] LIKE '%Slovo1%' OR [Name] LIKE '%Slovo2%'

При использовании предикатов из библиотеки LinqKit

foreach (string word in keyword.Keyword)
      predicate = predicate.Or(p => p.Name.Contains(word));

При "Or" поиск не срабатывает. Подскажите как это можно реализовать кодом? И возможно ли?


Ответы (1 шт):

Автор решения: Yaroslav
Predicate<List<string>> isConteins = delegate (List<string> x) 
{
    var isCon = false;
    foreach (string word in keyword.Keyword)
    {
        isCon = word.Contains(x[0]) || word.Contains(x[1]);
    }
    return isCon;
};

var result1 = keyword.Keyword.Where(x => isConteins(new List<string>{ "Slovo1", "Slovo2" }));
→ Ссылка