私は次のベース(抽象モデル)を持っています:
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' にあります。