0

В моем приложении есть класс, который наследует свойства базового класса, который также отображается в таблицу с использованием кода.Entity Framework Inherited Properties не заполняется

Все работает как ожидается, когда я смотрю на базу данных, все значения заполняются там, где я ожидаю, что это будет, но мое приложение рушится.

При проверке записи, полученной и переданной в виде модели, я вижу, что поля владельца и создателя пустые, даже если в унаследованной таблице базы данных я вижу, что идентификаторы заполнены действительным идентификатором пользователя. .. Почему они не будут отображаться?

This is the model adding correctly with values populated.

This is what my view is getting after doing a lookup for the same item id

BaseClass

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; 
    } 
} 

Sub Class

[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; } 
} 
+0

Возможно, вам понадобится изменить исходную проблему, чтобы она соответствовала запросу. – HichemSeeSharp

ответ

1

Я нашел этот вопрос, Ленивая загрузка не была включена на связанных свойств, чтобы включить эту i изменено

public SiteAccount Creator { get; set; } 

в

public virtual SiteAccount Creator { get; set; } 

Виртуальное ключевое слово позволило отложенной загрузки так что свойства навигации выбираются всякий раз, когда сам объект.

Смежные вопросы