【发布时间】:2017-05-06 23:13:24
【问题描述】:
当我们运行 ASP.NET 应用程序并注册用户时,Entity Framework 会自动在 AspNetUser 表中设置唯一 id (PK):
对于其他 AspNetRoles、AspNetUserLogins、AspNetUserRoles 也是如此 除了启用了身份的 AspNetUserClaims。
谁能解释实体框架是如何创建这个唯一 ID 的?如果我们想创建自己的表,在 EF 中禁用了标识,我们将如何为主键生成这种 Id?
【问题讨论】:
-
为什么您想使用 GUID 作为主键值?与旧的 32 位或 64 位整数相比,它有很多缺点。您似乎也将“身份”与“int”混淆了。设置“身份”意味着数据库将为新行生成主键值,而不管类型如何(但仅适用于支持的类型)。
-
实体框架会这样做。
-
我正在回复您的 “如果我们想创建自己的表 [...] 我们将如何生成这种 Id?”。为什么要使用 GUID 作为表的 PK?
标签: c# asp.net sql-server asp.net-mvc entity-framework