【发布时间】:2017-01-25 00:30:20
【问题描述】:
假设我有一个可汗数据库。我可以使用此实体框架代码按名称获取可汗
Khan khan=context.Khans.Where(x=>x.Name.Contains("Öge")).Single();
问题在于,实际上用户会键入“Oge”而不是“Öge”,并且不会得到任何匹配项。有没有一种简单的方法来处理这个问题,让带有重音符号的字母在搜索时始终算作没有重音符号的字母?
我发现this SO question 有Compare 方法的解决方案,但我似乎无法将其用于数据库查询:
string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);
【问题讨论】:
-
一种策略是创建一组变体,然后在查询中使用所有变体。
-
@Cᴏʀʏ 此评论应该是您答案的一部分,同样使用 juharr 的方法,OP 现在对他的问题有 3 个可能的答案。他可以选择他认为最好的。
-
@AntoinePelletier:我的评论是由于我的重复投票而自动添加的。一旦这个问题最终得到解决,我认为将其添加到我的答案中不会有任何好处。
标签: c# sql entity-framework linq-to-entities