将外键添加到 AspNetUser table
Add foreign key to AspNetUser table
我创建了一个具有用户身份的 ASP.NET Core Razor Pages 应用程序。
创建的项目包括添加所有用户 table 的迁移,例如 AspNetUser
和 AspNetRoles
。但是,它不会为这些 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。
我创建了一个具有用户身份的 ASP.NET Core Razor Pages 应用程序。
创建的项目包括添加所有用户 table 的迁移,例如 AspNetUser
和 AspNetRoles
。但是,它不会为这些 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。