类中的MVC类未被填充

时间:2014-10-18 06:28:31

标签: entity-framework model-view-controller

尝试创建现有PHP / MySql库应用程序的MVC应用程序。我无法获得最基本的工作,我觉得自己像个白痴。

我定义了以下类:

Book上课:

public class Book
{
    public int BookID { get; set; }
    public string BookName { get; set; }
    public int? SeriesID { get; set; }
    public int GenreID { get; set; }
    public Genre Genre { get; set; }
    etc
}

Genre上课:

public class Genre
{
    public int GenreID { get; set; }
    public string GenreName { get; set; }

    public virtual ICollection<Book> Books { get; set; }
}

当我运行它时,我看到每个创建的书籍对象都有一个Genre对象,但它是null,并且不会填充类型的数据。

书类中的GenreId是外键

有谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:0)

Book上的类型属性应该是虚拟的。如果它不是虚拟的,那么只检索Books的普通查询将始终将Genre留空。使其成为虚拟允许实体框架创建一个动态代理类,继承自Book,它实现了Genre属性的getter,其代码用于发出查询以填充并从数据库返回Genre。

你已经将Genre的书籍集合虚拟化,这样就可以作为一个懒惰的提取属性了。

延迟加载的替代方法是在查询中使用.Include以包含Genre属性。