将外键添加到 AspNetUser table

Add foreign key to AspNetUser table

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

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

现在我已经创建了自己的实体模型,我希望其中一些实体模型具有 AspNetUser table.

的外键

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

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

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; }
}

然后将启动时的 IdentityUser 替换为 AppUser :

services.AddDefaultIdentity<AppUser>();

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