当我们运行 ASP.NET 应用程序并注册用户时,Entity Framework 会自动在 AspNetUser 表中设置唯一 ID(PK):
其他 AspNetRoles、AspNetUserLogins、AspNetUserRoles 也是如此
除了启用了身份的 AspNetUserClaims。
任何人都可以解释 Entity Framework 如何创建这个唯一的 ID?如果我们想创建自己的表,在 EF 中禁用标识,我们将如何为主键生成这种 Id?
最佳答案
GUID 不是由 Entity Framework
或 SQL
生成的。它由 身份框架 处理。只需导航到 IdentityModels.cs
public class ApplicationUser : IdentityUser
{
// ...
}
此类继承自 Microsoft.AspNet.Identity.EntityFramework.IdentityUser
,此类的构造函数定义为 ( Source )public IdentityUser()
{
Id = Guid.NewGuid().ToString();
}
所以GUID是在构造函数中生成的。这对于其他身份表也是一样的。注意:数据库中的Id字段为
varchar (string)
。关于c# - Entity Framework 如何为主键值生成 GUID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41264313/