В моей базе данных у меня есть таблица, в которой хранятся города. В некоторых городах такие акценты, как «Фос-ду-Игуасу».Как искать строку с использованием Entity Framework с .Contains и с нечувствительным к акценту
В моем приложении MVC у меня есть JSON, который возвращает список городов, основанных на слове, однако несколько пользователей не используют акценты для поиска города, например «Foz do Iguacu».
в моей базе данных у меня есть «Фос IGUA БЗ у», но пользователи пользователей ищет «Фос-ду-IGUA C и»
Как можно искать записи в моей таблице, не обращая внимания акценты?
Вот мой код:
using (ServiciliEntities db = new ServiciliEntities())
{
List<Cidades> lCidades = db.Cidades.Where(c => c.CidNome.ToLower().Contains(q.Trim().ToLower())).OrderBy(c => c.CidNome).Take(10).ToList();
ArrayList lNomes = new ArrayList();
foreach (Cidades city in lCidades)
lNomes.Add(new {city.CidNome, city.Estados.EstNome});
return Json(new { data = lNomes.ToArray() });
}
Есть ли способ сделать это без изменения колонки? – Dan
Ну, я так не думаю, что на самом деле все Entity Framework делает перевод вашего запроса на SQL .. реальное сравнение должно делать базу данных. Если вы будете использовать какой-то хак, это должно привести к потере представление. Так почему вы не можете изменить колонку? –
@PetrAdam прав. Это решение для использования. BTW вы можете настроить Collation для всей базы данных или для всего вашего сервера базы данных. Последние позволяют это для каждой базы данных, которая будет создана. – CodeNotFound