Търся в SQL 2005 DB, в който има колона с пълно име. Искам да мога да проверя тази колона и да подредя резултатите според тяхната уместност.
Използвам хубава система за поръчка, която намерих в 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
Заявка за търсене: Joey Shabbadoo
Методът queryorder не съвпада с „contains“, тъй като не вижда полето за пълно име като съдържащо текста на заявката.
Начинът, по който подреждам резултатите, е следният
peopleList = peopleList.OrderBy(p => QueryOrder(fullName, p.FullName)).ToList();
И така, има ли начин да се използва LINQ, за да се направи това или трябва просто да тръгна по sproc маршрута?