我正在使用Ms-Sql DB,我有一个字段作为nvarchar类型保存在DB中。 我以下列方式使用linq to sql:
var names = NamesTable.where(n=>n.name.Contains("acções"));
此查询返回包含以下内容的名称:acçoes/ accoes或任何其他组合。 似乎sql不认识拉丁特殊字母与英文字母不同。
我该如何解决这个问题?
答案 0 :(得分:2)
在SqlServer中,您可以为每列设置"collation"。通常(我认为)它是“重音敏感”,但你的情况似乎是“重音不敏感”。看看它对于整理的说法,如果它以“AI”结束,那么它确实是Accent Insensitive。你需要一个“AS”代表“Accent Sensitive”。
此外,您可以拥有“CI”(“Case Insensitive”)或“CS”(“Case sensitive”)。