SQL Server CE 4 Entity Framework 4.3.1 Code First 不区分重音和不区分大小写的搜索
Posted
技术标签:
【中文标题】SQL Server CE 4 Entity Framework 4.3.1 Code First 不区分重音和不区分大小写的搜索【英文标题】:SQL Server CE 4 Entity Framework 4.3.1 Code First accent-insensitive and case-insensitive search 【发布时间】:2012-04-18 18:25:51 【问题描述】:我将 EF 4.3.1 Code First 与 SQL Server CE 4 数据库一起使用,它运行良好,可以轻松创建所有表和数据库
但是现在我遇到了这个问题,我正在使用 LINQ 查询数据库
using (var db = new PeopleContext())
var people = from e1 in db.People
where e1.Name.Contains("maria")
select e1;
我想得到名称包含 María
或 Maria
或 maría
或 maria
的每个人的结果 - 注意 i - í 中的重音符号
我想要一个不区分重音和不区分大小写的搜索
提前感谢您的帮助
更新:好的,我找到了一种在 .NET 端使用 string.Compare()
string.Compare(string1, string2, CultureInfo.CurrentCulture,
CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase);
IgnoreNonSpace 标志将忽略重音符号,而 IgnoreCase 标志将忽略大小写。
【问题讨论】:
【参考方案1】:SQL Server Compact 仅支持 CI_AS(不支持 CI_AI) - 请参阅 http://msdn.microsoft.com/en-us/library/ms174596(v=sql.105).aspx - 因此您必须使用其他数据库产品,或者将数据的可搜索版本存储在另一列中
【讨论】:
嘿 Erik 感谢您的回复,还有一件事,因为我的数据库非常小,只有大约 300 行,有没有办法在列表中进行不区分重音和不区分大小写的搜索? linq 到对象 =) 不区分大小写,是的,使用 .NET 格式,不太确定是否区分重音以上是关于SQL Server CE 4 Entity Framework 4.3.1 Code First 不区分重音和不区分大小写的搜索的主要内容,如果未能解决你的问题,请参考以下文章
使用 EF6 SQL Server CE Code First 创建数据库崩溃
使用 Visual Studio 2012 和 SQL Server Management Studio 2012 运行 SQL Server CE 4 查询