我有以下基础(抽象模型):
public abstract class StatusMessage
{
public int Id { get; set; }
/// <summary>
/// Message
/// </summary>
/// [Required]
public string Description { get; set; }
public DateTime? CreationDate { get; set; }
public int UseraccountId { get; set; }
public virtual Useraccount Useraccount { get; set; }
}
此模型源自StatusMessage:
public class ProjectStatusMessage : StatusMessage
{
public int ProjectId { get; set; }
public virtual Project Project { get; set; }
}
在我的上下文中,我构建了一个StatusMessage集:
public IDbSet<StatusMessage> StatusMessage { get; set; }
在我的初始化程序中,我尝试构建一个新的项目状态消息并将其保存到数据库中:
var statusMessages = new List<StatusMessage>
{
new ProjectStatusMessage
{
Description = "Test-Project-Status-Message",
ProjectId = 1,
UseraccountId = 1
}
};
statusMessages.ForEach(s => context.StatusMessage.Add(s));
context.SaveChanges();
执行代码时,编译器会抛出异常。 与'ProjectStatusMessage_Project'中的插入和外键约束存在冲突。冲突在表'dbo.Project'中,列'Id'。
答案 0 :(得分:0)
我自己发现了这个问题。 初始化程序中的顺序错误。 我首先创建了projectstatus,然后创建了项目......