Я ищу базу данных SQL 2005, в которой есть столбец полного имени. Я хочу иметь возможность сверяться с этим столбцом и упорядочивать результаты в соответствии с их релевантностью.
Я использую хорошую систему заказов, которую я нашел на SO, но, к сожалению, она не работает так, как мне хотелось бы, и, похоже, это связано с несоответствием функциональности «содержит».
Вот код:
private static int QueryOrder(string query, string name)
{
if (name == query)
return -1;
if (name.Contains(query))
return 0;
return 1;
}
Теперь проблема в том, что это не работает в следующем сценарии:
Данные столбца полного имени базы данных: Joey JoeJoe Junior Shabbadoo
Поисковый запрос: Джоуи Шаббаду
Метод queryorder не соответствует «содержит», поскольку он не видит поле полного имени как содержащее текст запроса.
Затем я упорядочиваю результаты следующим образом.
peopleList = peopleList.OrderBy(p => QueryOrder(fullName, p.FullName)).ToList();
Итак, есть ли способ сделать это с помощью LINQ или мне просто нужно пройти по маршруту sproc?