为什么ASP.NET Identity 2.0 dbo.AspNetUsers Id是字符串而不是int?

时间:2016-09-07 10:30:55

标签: string integer asp.net-identity identity

ASP.NET Identity 2.0 dbo.AspNetUsers定义为字符串:

Id = c.String(nullable: false, maxLength: 128)

何时可以定义为整数:

Id = c.Int(nullable: false, identity: true)

为什么会这样?这是什么+/-?

将它更改为整数是否有意义,或者存在搞砸一切的风险?

2 个答案:

答案 0 :(得分:2)

除了已经链接的答案之外 - 还构建了Identity,因此它可以容纳任何类型的存储。我已经看到Azure表和纯文本文件存储实现。并非所有这些都可以使用int / Guid作为主键,甚至可以使用主键。

所以任何系统的最小公分母 - 一个字符串。但它可以更改为int或Guid或任何存储支持。

答案 1 :(得分:-1)

不要改变它。如果您注意到,UserManager类仅适用于主键类型为字符串的位置。