我需要找到包含特殊土耳其字符的客户名称。例如,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'
返回没有找到行。我找不到实现这个目标的方法。
答案 0 :(得分:1)
与Linq to Entities无关。您的数据库可能配置为AS(Accent Sensitive)。所以,尝试执行以下查询;
SELECT * FROM Customer WHERE Name LIKE N'Sagbuz' COLLATE Latin1_General_CI_AI
将为Şağbüz
返回结果。
另外,请注意,尝试更改sql server的排序规则可能会影响整个表和记录。
答案 1 :(得分:0)
您应该使用“ where”而不是“ select”:
context.Customers.Where(c => c.Name.Contains('Sagbuz'));