Asp.net .NET正在查询Aspnetusers而不是自定义AuthUser,但AspNetUser不存在
我编写了一个自定义的身份验证程序,它是AuthUserAsp.net .NET正在查询Aspnetusers而不是自定义AuthUser,但AspNetUser不存在,asp.net,asp.net-core,dot,Asp.net,Asp.net Core,Dot,我编写了一个自定义的身份验证程序,它是AuthUser public class AuthUser : IdentityUser { public int StudentsId { get; set; } public virtual Students StudentProfile { get; set; } public int InstructorId { get; set; } public virtual Inst
public class AuthUser : IdentityUser
{
public int StudentsId { get; set; }
public virtual Students StudentProfile { get; set; }
public int InstructorId { get; set; }
public virtual Instructor InstructorProfile { get; set; }
public bool IsStudent { get; set; }
public bool IsInstructor { get; set; }
}
正如你所看到的,上下文是好的
public class LmsContext : IdentityDbContext<AuthUser> //DbContext
{
}
公共类LmsContext:IdentityDbContext//DbContext
{
}
startup.cs已全部设置完毕
services.AddDbContext<LmsContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("UCIPrimarySchool"))
);
services.AddDefaultIdentity<AuthUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<LmsContext>();
services.AddControllersWithViews();
services.AddRazorPages();
services.AddDbContext(选项=>
options.UseSqlServer(
Configuration.GetConnectionString(“UCIPrimarySchool”))
);
services.AddDefaultIdentity(options=>options.SignIn.RequireConfirmedAccount=true)
.AddEntityFrameworkStores();
services.AddControllersWithViews();
services.AddRazorPages();
但是当我尝试登录时,我得到了以下错误
An unhandled exception occurred while processing the request.
SqlException: Invalid object name 'AspNetUsers'.
Microsoft.Data.SqlClient.SqlCommand+<>c.<ExecuteDbDataReaderAsync>b__169_0(Task<SqlDataReader> result)
处理请求时发生未处理的异常。
SqlException:无效的对象名称“AspNetUsers”。
Microsoft.Data.SqlClient.SqlCommand+c.b__169_0(任务结果)
为什么is不查询扩展AuthUser,而是查询不存在的表AspNetUsers?首先,您应该澄清您的关系,然后正确迁移和更新数据库 按以下方式更改AuthUser:
public class AuthUser : IdentityUser
{
public virtual Students StudentProfile { get; set; }
public virtual Instructor InstructorProfile { get; set; }
public bool IsStudent { get; set; }
public bool IsInstructor { get; set; }
}
在您的上下文中
:
public DbSet<Students> Students { get; set; }
public DbSet<Instructor> Instructor { get; set; }
到
@InjectSigninManager
选择您的LmsContext
添加
然后启动应用程序并登录。您是否创建了迁移并更新了数据库?您的AuthUser
、学生和讲师之间的关系是什么?你能分享你的学生
和讲师
课程吗?是的,我更新了数据库,学生和讲师只是这两位候选人各自的个人资料。Teshi@wangolo joel,你能与我们分享学生和讲师
模型吗?他们之间的关系是一对一吗?有趣的细节谢谢,我让关键部件工作起来了。
@inject SignInManager<IdentityUser> SignInManager
@inject UserManager<IdentityUser> UserManager
@inject SignInManager<AuthUser> SignInManager
@inject UserManager<AuthUser> UserManager