sql-server - ASP.NET 核心标识 - 默认情况下,为什么数据库主键定义为 "nvarchar"而不是 "UniqueIdentifier"?

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

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

enter image description here

最佳答案

之所以是因为Id属性类型是字符串。事实上,asp.net core identity 中的所有主键都是字符串,其构造函数如下所示......

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

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

关于sql-server - ASP.NET 核心标识 - 默认情况下,为什么数据库主键定义为 "nvarchar"而不是 "UniqueIdentifier"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44193061/

相关文章:

azure - 使用 Azure Devops 将 ASP.NET Core Web 应用程序部署到本地 IIS 的正确方法

c# - ASP.NET Core 2.0 webApp 在发布到 iis 后显示 'view Index was not found...'

c# - 带有 Apache 和反向代理的 Linux ASP.Net 核心

sql - join条件和where条件的区别

SQL 在两个方向上获取最近的日期

mysql - 在实时站点上通过Golang连接到Cloud SQL(MySQL)

java - JPA 不坚持 child

node.js - 构建处理 MongoDB 查询的 Express 路由的最佳实践

SQL 满足以下要求

sql - 如何比较 SQL Server 中的两个时间戳作为日期