【问题标题】:ASP.NET core Identity - by default why are the database primary key defined "nvarchar" and not "UniqueIdentifier"?ASP.NET 核心标识 - 默认情况下,为什么数据库主键定义为“nvarchar”而不是“UniqueIdentifier”?
【发布时间】:2017-05-26 03:18:58
【问题描述】:

默认情况下,ASP.NET Identity 使用 GUID 作为主键,但是当生成数据库主键时,它使用 nvarchar - 为什么不使用 SQL 数据类型“UniqueIdentifier”?

【问题讨论】:

标签: sql-server database asp.net-core asp.net-identity sqldatatypes


【解决方案1】:

之所以会这样,是因为Id属性类型是字符串。事实上,asp.net 核心标识中的所有主键都是字符串,它们的构造函数看起来像这样......

public IdentityUser()
{
    Id = Guid.NewGuid().ToString();
}

现在的确切原因是因为 EF 在多个数据库提供程序上运行,并且并非所有数据库提供程序都具有 GUID 类型。 GUID 类型比here 更快,但除非您使用庞大的数据集并且需要顶级性能,否则字符串类型可以正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-25
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    相关资源
    最近更新 更多