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

标签 c# asp.net sql-server asp.net-identity

默认将 UserId 存储在 NVARCHAR(128) 中。有人可以解释为什么它不将其存储在 NVARCHAR 中吗?据我所知,GUID 只不过是数字、字母和破折号。是否需要 NVARCHAR 才能正确存储?

最佳答案

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

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

关于c# - 为什么 ASP.Net Identity 2 存储在 NVARCHAR 中的 UserId 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24566787/

相关文章:

sql-server - numeric(19, 0) 的最大值是多少,如果达到会发生什么?

c# - 从 CSV 文件填充数据集

c# - Gmap.Net 标记在不正确的位置,但本地图缩放时,标记会转到正确的位置

c# - C# 中的单调 WaitableTimer

javascript - 如何在页面加载后停止按钮文本更改?

sql - Unicode - VARCHAR 和 NVARCHAR

c# - 如果我等待执行 ReadAsStringAsync() 的响应,我应该等待 ReadAsStringAsync() 吗?

c# - 上传图片到数据库c#

asp.net - 如何清除 Asp.Net 按钮上所有文本框的值单击

sql-server - Sql Azure 导入 localdb 失败,不支持排序规则 1033