SQL Server CE 4实体框架4.3.1代码首先对重音不敏感且不区分大小写的搜索

时间:2012-04-18 18:25:51

标签: c# linq entity-framework sql-server-ce sql-server-ce-4

我正在使用带有SQL Server CE 4数据库的EF 4.3.1 Code First,它可以很好地创建所有表和数据库而不会有麻烦

但是现在我遇到了这个问题,我正在使用LINQ查询数据库

using (var db = new PeopleContext())
{    
      var people = from e1 in db.People
                   where e1.Name.Contains("maria")
                   select e1;
}

我希望得到名称中包含MaríaMariamaríamaria的每个人的结果 - 注意i - í中的重音

我想要一个不区分重音且不区分大小写的搜索

提前感谢您提供任何帮助


更新:好的,我找到了一种使用string.Compare()

在.NET端执行此操作的方法
string.Compare(string1, string2, CultureInfo.CurrentCulture,
CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase);

IgnoreNonSpace标志将忽略重音,IgnoreCase标志将忽略大小写。

1 个答案:

答案 0 :(得分:1)

SQL Server Compact仅支持CI_AS(不是CI_AI) - 请参阅http://msdn.microsoft.com/en-us/library/ms174596(v=sql.105).aspx - 因此您必须使用其他数据库产品,或将可搜索的数据版本存储在另一列中