私のアプリケーションには、最初にコードを使用してテーブルにマップされている基本クラスからプロパティを継承するクラスがあります。
データベースを見ると、すべてが期待どおりに機能しています。すべての値が期待どおりに入力されていますが、アプリケーションがクラッシュしています。
取得してモデルとしてビューに渡されたレコードを調べると、所有者フィールドと作成者フィールドが空白であることがわかりますが、データベースの継承されたテーブルでは、ID に有効なユーザー ID が入力されていることがわかります...なぜこれらはマッピングされていませんか?
ベースクラス
public class SiteModel
{
public SiteModel() { }
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string EntityType { get; set; }
public DateTime Created { get; set; }
[ForeignKey("Creator")]
public int CreatorID;
public SiteAccount Creator { get; set; }
[ForeignKey("Owner")]
public int OwnerID;
public SiteAccount Owner { get; set; }
[ForeignKey("Parent")]
public int? ParentID;
public SiteModel Parent { get; set; }
public List<SiteModel> Children { get; set; }
public SiteModel(SiteAccount creator)
{
Creator = creator;
Owner = creator;
Created = DateTime.Now;
EntityType = this.GetType().Name;
}
}
サブクラス
[Table("BlogPost")]
public class BlogPost : SiteModel
{
public BlogPost() { }
public BlogPost(string title, string content, string description, string tags, BlogCategory category, BlogStatus status, SiteAccount creator) : base(creator)
{
Title = title;
Content = content;
Description = description;
Tags = tags;
Parent = category;
Status = status;
}
[Required]
public string Title { get; set; }
[Required]
public string Content { get; set; }
public string Description { get; set; }
[Required]
public string Tags { get; set; }
public BlogStatus Status { get; set; }
}