我想为MVC生成的ASP.NET身份生成的LocalDB添加更多表。我需要将现有用户与我的新表关联起来。所以我创建了一个简单的DbContext类,如下所示:
public class StatusTrackerDbContext : IdentityDbContext<ApplicationUser>
{
public StatusTrackerDbContext()
: base("DefaultConnection")
{
}
public DbSet<TempTask> TempTasks { get; set; }
}
虽然TempTask定义如下:
public class TempTask
{
[Key]
public int TempTaskId { get; set; }
public virtual ApplicationUser User { get; set; }
public string Title { get; set; }
public IssueStatus Status { get; set; }
}
数据库迁移似乎正确生成表,使用AspnetUser表的外键
public override void Up()
{
CreateTable(
"dbo.TempTasks",
c => new
{
TempTaskId = c.Int(nullable: false, identity: true),
Title = c.String(),
Status = c.Int(nullable: false),
User_Id = c.String(maxLength: 128),
})
.PrimaryKey(t => t.TempTaskId)
.ForeignKey("dbo.AspNetUsers", t => t.User_Id)
.Index(t => t.User_Id);
}
public override void Down()
{
DropForeignKey("dbo.TempTasks", "User_Id", "dbo.AspNetUsers");
DropIndex("dbo.TempTasks", new[] { "User_Id" });
DropTable("dbo.TempTasks");
}
但是当我运行我的应用程序将新的TempTask添加到我的新表时,我就会出现这个错误:
具有身份的成员&#39; StatusTracker.Services.TempTask_User&#39;不 元数据集合中不存在
任何人都知道发生了什么。我很感激。感谢。