【发布时间】:2016-05-11 14:46:01
【问题描述】:
当我查看 ASP.NET 3 Identity 时,它使用 string 而不是 Guid 作为唯一主键。
在我的 Entity Framework code first 用户的 ApplicationUser 类中,我继承了 Identity 类
public class ApplicationUser : IdentityUser
{
}
这导致当我创建我的实体框架迁移时,一个表 aspnetusers 使用nvarchar(450) 而不是uniqueidentifier 的键类型创建
当我将此与 ASP.NET Identity 2 ENtity Framework 项目进行比较时,它创建了一个 ID 字段 uniqueidentifier 而不是 nvarchar(450)
我想uniqueidentifier 的数据库性能主键和外键会比nvarchar(450) 更好
有没有办法使用唯一键 Guid 而不是 string 和 uniqueidentifier 而不是 nvarchar(450) 和 ASP.NET Identity 3?
有一个previous question 如何将字符串转换为 Guid,但我希望数据库表 Id 是 Guid。
当长度为 nvarchar(128) 时,我还找到了另一个 question 以及以前的 BETA。给出的原因是并非所有数据库都支持 Guid,并且为了灵活性而对其进行了更改。
是否必须有一种简单的方法来从字符串更改为 Guid 而无需重写整个 identity 3?
nvarchar(450) 真的是大材小用,在创建 SQL Server 数据库约束时会给出各种警告。数据库管理员肯定不会喜欢这些警告。
【问题讨论】:
标签: c# asp.net-core entity-framework-core asp.net-identity asp.net-identity-3