当前位置: 首页 > 编程语言 > C#

使用Entity Framework搜索数据库时忽略重音分享

时间:2023-04-11 03:32:32 C#

C#学习教程:使用实体框架搜索数据??库时忽略重音像?等。我需要使用EF4从包含一些子字符串的表中获取所有记录,而不考虑重音。所以下面的代码:myEntities.Items.Where(i=>i.Name.Contains("a"));应该返回名称中带有a的所有项目,以及所有带有?、a等的项目。这可能吗?如果在Name列上设置了不区分重音的排序顺序,则查询应按要求运行。设置不区分重音的排序规则将解决问题。您可以使用下一个查询来更改SQLServer和Azure数据库中列的排序规则。ALTERTABLETableNameALTERCOLUMNColumnNameNVARCHAR(100)COLLATESQL_LATIN1_GENERAL_CP1_CI_AINOTNULLSQL_LATIN1_GENERAL_CP1_CI_AI是一种排序,其中LATIN1_GENERAL是英语(美国),CP1是代码页1252,CI不区分大小写,AI不区分重音。我知道这不是一个干净的解决方案,但在阅读之后我尝试了这样的事情:varquery=this.DataContext.Users.SqlQuery(string.Format("SELECT*FROMdbo.UsersWHERELastNamelike'%{0}%'整理Latin1_general_CI_AI",parameters.SearchTerm));之后,您仍然可以调用“查询”对象上的方法,如Count、OrderBy、Skip等。StuartDunkeld建议的对重音不敏感的归类绝对是最好的解决方案......但也许很高兴知道:MichaelKaplan有一篇关于剥离变音符号的帖子:staticstringRemoveDiacritics(stringstIn){stringstFormD=stIn.Normalize(NormalizationForm.FormD);StringBuildersb=newStringBuilder();for(intich=0;ichresource所以你的代码是:以上是C#学习教程:IgnoreaccentswhensearchingthedatabaseusingEntityFramework很有用,需要多了解C#学习教程,希望大家多多付出注意---myEntities.Items.Where(i=>RemoveDiacritics(i.Name).Contains("a"));本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处: