Sql server MSSQL唯一索引/键,具有区分重音的collate(ss!=ß;,…)EF核心代码优先

Sql server MSSQL唯一索引/键,具有区分重音的collate(ss!=ß;,…)EF核心代码优先,sql-server,entity-framework,varchar,collate,accent-sensitive,Sql Server,Entity Framework,Varchar,Collate,Accent Sensitive,我有一个带有组合键(字符串+日期)的表,其中字符串设置为nvarchar,collate Latin1_General_CI_as。我现在的问题是,插入带有“ß”或“ss”的单词会受到同等的威胁,从而违反唯一性约束。将nvarchar更改为varchar可以解决此问题,但是,它有一个缺点,即不允许使用某些特殊字符 我该怎么做才能更好地使用不区分大小写但区分重音的组合唯一密钥? 如果可能,我宁愿先在ef核心代码中创建数据库模式。这是否回答了您的问题?这是否意味着我不能使用ß!=ss这种情况下的问题

我有一个带有组合键(字符串+日期)的表,其中字符串设置为nvarchar,collate Latin1_General_CI_as。我现在的问题是,插入带有“ß”或“ss”的单词会受到同等的威胁,从而违反唯一性约束。将nvarchar更改为varchar可以解决此问题,但是,它有一个缺点,即不允许使用某些特殊字符

我该怎么做才能更好地使用不区分大小写但区分重音的组合唯一密钥?
如果可能,我宁愿先在ef核心代码中创建数据库模式。

这是否回答了您的问题?这是否意味着我不能使用ß!=ss这种情况下的问题是关于键列的唯一性,而不是字符串比较结果,因此在您的情况下应用它(并比较两列以进行单个字符串比较)可能是不可行的。相同的解决方案适用于这两种情况。在排序规则中,当您不希望它们相等时,2是相等的。