我有以下基础(抽象模型):
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”列中。