Сформировать запрос до базы
Необходимо в таблице базы данных 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" }));