我认为我的模型有错误,但我不确定它是什么。
首先是错误
The INSERT statement conflicted with the FOREIGN KEY constraint
"FK_dbo.ProjectDocAccess_dbo.ProjectDoc_ProjectDocAccessID". The conflict
occurred in database "dbname",
table "dbo.ProjectDoc", column 'ProjectDocID'.
模型(ProjectDocAccess
修剪)
public class ProjectDocAccess
{
public int ProjectDocAccessID { get; set; }
public int ProjectDocID { get; set; }
public virtual ProjectDoc ProjectDoc { get; set; }
}
模型(ProjectDoc
修剪)
public class ProjectDoc
{
public int ProjectDocID { get; set; }
public int ProjectID { get; set; }
public ProjectDocAccess ProjectDocAccess { get; set; }
public Project Project { get; set; }
}
流畅的 API 映射
modelBuilder.Entity<ProjectDocAccess>()
.HasRequired(p => p.ProjectDoc).WithOptional()
.WillCascadeOnDelete(true);
当我尝试在ProjectDocAccess
表中插入新记录时,它会强制我在ProjectDocAccessID
字段中插入一个值。在我所有的其他模型中,这个自动递增。我不确定我做错了什么。帮助?
更新
根据我选择的答案。这就是我为修复它所做的。
完全删除了流畅的 API 映射。
更新ProjectDocAccess
模型如下
public class ProjectDocAccess
{
[Key, ForeignKey("ProjectDoc")]
public int ProjectDocAccessID { get; set; }
public virtual ProjectDoc ProjectDoc { get; set; }
}