我用用户身份创建了一个ASP.NET Core Razor Pages应用程序。
创建的项目包括一个迁移,该迁移添加了所有用户表,例如AspNetUser
和AspNetRoles
。但是,它不会为这些表创建任何代码模型。
现在,我已经创建了自己的实体模型,我希望其中的一些模型具有指向AspNetUser
表的外键。
我该怎么做?平台是否在任何地方都将它们公开为类?我是否需要手动创建模型并尝试使它们与表完全匹配?或为此,我如何访问用户的所有详细信息?
答案 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>();
然后创建新迁移以创建新的用户表。