我正在使用 Ms-Sql DB,并且我有一个字段作为 nvarchar 类型保存在 DB 中。我通过以下方式使用 linq to sql:
var names = NamesTable.where(n=>n.name.Contains("acções"));
此查询返回的名称包含:acçoes/ accoes 或任何其他组合。似乎 sql 无法识别拉丁特殊字母与英文字母不同。
我怎么解决这个问题?
在 SqlServer 中,您可以为每列设置一个“排序规则” 。通常(我认为)它是“重音敏感的”,但你的情况似乎是“重音不敏感”。看看它对排序规则的描述,如果它以“AI”结尾,那么它确实是对口音不敏感。您需要一个“AS”来表示“Accent Sensitive”。
此外,您还可以使用“CI”(表示“不区分大小写”)或“CS”(表示“区分大小写”)。