我有两张桌子:
public class Work
{
public int WorkId { get; set; }
(...)
}
public class Check
{
public int CheckId { get; set; }
(...)
}
然后我想在它们之间添加多对多的关系,所以:
public class WorkCheck
{
[Key, Column(Order = 0)]
[ForeignKey("Work")]
public int WorkId { get; set; }
public virtual Work Work { get; set; }
[Key, Column(Order = 1)]
[ForeignKey("Check")]
public int CheckId { get; set; }
public virtual Check Check { get; set; }
(...)
}
public class Work
{
public int WorkId { get; set; }
(...)
public virtual IList<WorkCheck> WorkChecks { get; set; }
}
public class Check
{
public int CheckId { get; set; }
(...)
public virtual IList<WorkCheck> WorkChecks { get; set; }
}
在软件包管理器控制台中,我运行了“Add-Migration WorkCheckTableAdded”命令,没有显示错误。
但是,当我执行“Update-Database -verbose”命令时,我得到了异常: “外键'FK_dbo.WorkCheck_dbo.Work_WorkId'在引用表'dbo.Work'中引用无效列'WorkId'。 无法创建约束。请参阅先前的错误。“
答案 0 :(得分:1)
在新项目中不会发生此问题。它可能与我项目中的一些失败的迁移脚本有关。为了重置迁移,我删除了VS项目和目标数据库中的Migrations文件夹。