0

我有以下基础(抽象模型):

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”列中。

4

1 回答 1

0

我自己发现了问题。我的初始化程序中的顺序是错误的。我首先创建了项目状态,然后是项目...

于 2013-04-12T09:36:02.017 回答