我正在学习构建ASP.NET MVC Core Web应用程序。一切正常,直到我开始将Identity
添加到它。ASP.NET MVC Core:添加IdentityUser后出现错误
注册用户可以创建很多作业。我使用ApplicationUser.cs
附带的项目用户。我为所有其他实体创建了另一个DbContext
。
ApplicationUser.cs
在型号:
public class ApplicationUser : IdentityUser
{
// CUSTOM PROPERTIES
public string Name { get; set; }
public ICollection<Job> Jobs { get; set; }
}
Job.cs
在型号:
public class Job
{
public int ID { get; set; }
public string Title { get; set; }
// contains other properties
public string ApplicationUserID { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
}
ApplicationDbContext.cs
:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
当我在Job.cs
添加这些2行,错误弹出。
public string ApplicationUserID { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
错误== >>
未处理的异常:System.Exception的:无法解析的 型 'MyProject.Data.JobDbContext' 为参数 '语境' 服务 方法'配置'类型'MyProject.Startup'。 ---> System.InvalidOperationException:实体类型 'IdentityUserLogin'需要定义一个主键。
我知道有一些线程讨论关于同样的错误,但这些答案不能真正帮助。
一些职位说,添加'base.OnModelCreating'语句到'OnModelCreating'方法可以解决这个问题,但它不在我的代码中。 – Matt
阅读错误我认为你的用户模型中没有PK ..可以吗? –
我看不到表格的映射.....你做了这些映射吗? – Lari