当我们运行 ASP.NET 应用程序并注册用户时,Entity Framework 会自动在 AspNetUser 表中设置唯一 ID(PK):

c# - Entity Framework 如何为主键值生成 GUID?-LMLPHP

其他 AspNetRoles、AspNetUserLogins、AspNetUserRoles 也是如此
除了启用了身份的 AspNetUserClaims。

任何人都可以解释 Entity Framework 如何创建这个唯一的 ID?如果我们想创建自己的表,在 EF 中禁用标识,我们将如何为主键生成这种 Id?

最佳答案

GUID 不是由 Entity FrameworkSQL 生成的。它由 身份框架 处理。只需导航到 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/

10-16 19:56