在我的数据库中,我有一个存储城市的表。有些城市有口音,例如“Foz do Iguaçu”。
在我的 MVC 应用程序中,我有一个返回基于单词的城市列表的 JSON,但是,很少有用户不使用重音来搜索城市,例如“Foz do Iguacu”。
在我的数据库中我有“Foz do IguaÇu”但是用户 用户搜索“Foz do IguaCu”
如何在我的表中搜索记录,忽略重音符号?
这是我的代码:
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() });
}
最佳答案
您可以在数据库 的列上设置不区分重音的排序规则顺序。然后查询应该工作。例如,如果您将 SQL_LATIN1_GENERAL_CP1_CI_AI 设置为 CidNome 列,查询将按需要执行。
使用这个 SQL 脚本:
ALTER TABLE dbo.YourTableName
ALTER COLUMN YourColumnName NVARCHAR (100) COLLATE SQL_Latin1_General_CP1_CS_AS NULL
关于c# - 如何使用带有 .Contains 和重音不敏感的 Entity Framework 搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33722136/