将外键添加到AspNetUser表

时间:2019-11-01 04:23:21

标签: c# asp.net-core entity-framework-core entity-framework-migrations

我用用户身份创建了一个ASP.NET Core Razor Pages应用程序。

创建的项目包括一个迁移,该迁移添加了所有用户表,例如AspNetUserAspNetRoles。但是,它不会为这些表创建任何代码模型。

现在,我已经创建了自己的实体模型,我希望其中的一些模型具有指向AspNetUser表的外键。

我该怎么做?平台是否在任何地方都将它们公开为类?我是否需要手动创建模型并尝试使它们与表完全匹配?或为此,我如何访问用户的所有详细信息?

1 个答案:

答案 0 :(得分:0)

默认身份使用IdentityUser,它不会暴露给项目代码,但是您可以创建一个从AppUser派生的新用户模型(例如IdentityUser),然后添加新用户模型的外键:

public class AppUser : IdentityUser
{
    public int AddressId { get; set; }
    public UserAddress Address { get; set; }
}

public class UserAddress
{
    public int Id { get; set; }

    // ...

    public string UserId { get; set; }
    public AppUser User { get; set; }
}

然后在启动时用AppUser替换IdentityUser:

services.AddDefaultIdentity<AppUser>();

然后创建新迁移以创建新的用户表。