【发布时间】:2017-12-17 19:33:41
【问题描述】:
我需要找到包含特殊土耳其语字符的客户名称。例如,Customer 表是:
Id Name Surname
--------------------
1 Şağbüz Akarca
2 Üleykö Pancar
我想用这个 linq 查询找到 ID 为 1 的记录:
context.Customers.Select(c => c.Name.Contains('Sagbuz'));
另一个例子:
context.Customers.Select(c => c.Name.Contains('Uleyko'));
这个查询被转换成这个:
SELECT * FROM Customer WHERE Name LIKE N'Sagbuz'
返回未找到任何行。我找不到实现这一目标的方法。
【问题讨论】:
-
如果你想搜索
Şağbüz,为什么要使用Sagbuz? -
客户名称以 nvarchar 类型存储在数据库中,但对于我的应用程序,有些人搜索没有土耳其字符的名称,因为他们有英文键盘布局(他们也忘记使用土耳其字母),而且他们想找到带有土耳其字母的记录。使用土耳其语键盘布局并使用正确字母搜索单词的人没有问题。
-
你能改变数据库结构吗?
-
我做不到
-
那么你就被限制在这样的事情上stackoverflow.com/a/23212281/1663001
标签: c# sql-server asp.net-mvc entity-framework linq