为什么ASP.Net Identity 2存储在NVARCHAR中的UserId中?

6 c# sql-server asp.net asp.net-identity

默认值存储UserId在a中NVARCHAR(128).有人可以解释为什么它不存储在一个NVARCHAR?从我看到的GUID只不过是数字,字母和破折号.是否需要NVARCHAR正确存储?

Hor*_*Net 1

数据类型用法是实体框架实现的实现细节。其他连接器(例如 MongoDB 的连接器)使用其他数据类型。您可以为此编写自己的实现,但从 Identity 版本 2 开始,您可以使用其他类型作为 ID(无需使用 VARCHAR 或字符串)。为了完成这项工作,您必须实现一些从某些框架类派生的附加类。

有关实现示例,请查看 James 在该线程中的回答。使用此代码片段,您只需将泛型类型从int更改为Guid即可将 Guid 作为 ID 的数据类型。