我们正在将代码库从EF6.2升级到EF Core 2.2,我们的团队发现基于字符串的身份密钥的默认值将生成带有以下内容的主键列:
nvarchar(128)
在EF 6.2(SQL Server)中 nvarchar(450)
在EF Core 2.2(SQL Server)中做出此决定的原因是什么?
SQL Server允许索引最大为900字节。nvarchar中的字符为2个字节。2 * 450 =900。我们(EF团队)担心EF6中多个列上的主键。在EF Core中,我们意识到只对指定的字符进行了索引(“ var”用于变化的长度),因此我们可以将所有字符最多进行450个,只要键中所有列的字符总数少于450个,它就仍然可以工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句