C# 将外键添加到AspNetUser表
我已经创建了一个具有用户身份的ASP.NET Core Razor Pages应用程序 创建的项目包括添加所有用户表的迁移,例如C# 将外键添加到AspNetUser表,c#,asp.net-core,entity-framework-core,entity-framework-migrations,C#,Asp.net Core,Entity Framework Core,Entity Framework Migrations,我已经创建了一个具有用户身份的ASP.NET Core Razor Pages应用程序 创建的项目包括添加所有用户表的迁移,例如AspNetUser和AspNetRoles。但是,它不会为这些表创建任何代码模型 现在,我已经创建了自己的实体模型,我希望其中一些模型具有AspNetUser表的外键 我该怎么做?平台是否在任何地方公开这些类?我是否需要手动创建模型并尝试使其与表完全匹配?或者,我如何访问用户的所有详细信息?默认标识使用IdentityUser,它不暴露于项目代码中,但您可以创建一个从
AspNetUser
和AspNetRoles
。但是,它不会为这些表创建任何代码模型
现在,我已经创建了自己的实体模型,我希望其中一些模型具有AspNetUser
表的外键
我该怎么做?平台是否在任何地方公开这些类?我是否需要手动创建模型并尝试使其与表完全匹配?或者,我如何访问用户的所有详细信息?默认标识使用
IdentityUser
,它不暴露于项目代码中,但您可以创建一个从IdentityUser
派生的新用户模型(例如AppUser
),然后将外键添加到新用户模型中:
公共类AppUser:IdentityUser
{
public int AddressId{get;set;}
公共用户地址{get;set;}
}
公共类用户地址
{
公共int Id{get;set;}
// ...
公共字符串用户标识{get;set;}
公共AppUser用户{get;set;}
}
然后将启动中的IdentityUser替换为AppUser:
services.AddDefaultIdentity();
然后创建新的迁移以创建新的用户表。我这样做了。但是当我运行该程序时,我得到一个异常:InvalidOperationException:没有注册类型为“Microsoft.AspNetCore.Identity.UserManager”的服务[1[Microsoft.AspNetCore.Identity.IdentityUser]”。不幸的是,我没有得到任何行号。我解决了这个问题。我不得不在_LoginPartial.cshtml中将对
IdentiyUser
的引用更改为AppliationUser
。