使用英文字符搜索以匹配外国字符

时间:2014-07-29 12:37:31

标签: asp.net sql sql-server entity-framework

使用EF6的net MVC应用程序 并希望搜索“O”以返回包含“Ø”的匹配

我目前正在使用MSSQL Server中的默认排序规则。

我是否必须更改排序规则或添加一些代码?

感谢

2 个答案:

答案 0 :(得分:1)

这叫做normalization

E.g。 køpenhavn可以写成

køpenhavn 
kopenhavn 
koepenhavn 

所以从一个普通的SQL你可以查询

select ...
where col1='kopenhavn' 
   or col1=replace('kopenhavn','o','ø') 
   or col1=replace('kopenhavn','o','oe')

select ...
where col1='kopenhavn' COLLATE SQL_Latin1_General_CP1253_CI_AI

(仅返回3中的2个)。

实体框架支持COLLATE子句,但LINQ to SQL不支持。

答案 1 :(得分:0)

更改整理

ALTER TABLE Resource ALTER COLUMN FirstName
        nvarchar(50)COLLATE Latin1_General_CI_AI;

工作