В приложении есть одно текстовое поле Fox, которое используется в качестве Quick Gearch . Honda Accord xl
На основе базы данных ключевых слов должна вернуть мне соответствующие строки, и здесь начинается проблема. Нет никаких ограничений на порядок, какие ключевые слова будут введены для подготовки фразы, то есть можно ввести accord xl honda или это может быть похоже на xl Accord или может быть honda . В примере honda is сделан, accord является моделью, а xl - это расширение. Но главная проблема заключается в том, что я не знаю, что они введут, и я должен изучить три разных столбца таблицы с использованием содержит оператор.
Вот то, что я попробовал. Я разделил фразу на слова и помещаю их в массив var arr = Keyword.split (new [] {''}) . Следующий шаг я строю запрос в петле этих элементов массива: < /p>
Код: Выделить всё
foreach (var k in arr)
{
var item = new Vehicle();
var arrayItem = k;
var query = DataContext.Vehicles.Where(v =>v.RealName.Contains(arrayItem)
|| v.Model.Contains(arrayItem)
|| v.Style.Contains(arrayItem)).ToList();
foreach (var v in query)
{
if(!result.Contains(v))
result.Add(v);
}
}
return result;
Подробнее здесь: https://stackoverflow.com/questions/405 ... tion-of-ke