0
我有以下基地(抽象模型):表每層次(TPH)與實體框架繼承
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; }
在我初始化我嘗試建立一個新的項目狀態信息,並將其保存到d atabase:
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'。