Entity framework 未填充类中的MVC类

Entity framework 未填充类中的MVC类,entity-framework,model-view-controller,Entity Framework,Model View Controller,正在尝试为现有的PHP/MySql库应用程序创建一个MVC应用程序。我很难让最基本的东西正常工作,我觉得自己像个白痴 我定义了以下类: 图书类别: 类型类: 当我运行这个程序时,我看到创建的每个book对象都有一个流派对象,但它是空的,并且没有填充流派的数据 book类中的GenreId是一个外键 谁能告诉我我做错了什么吗?这本书的体裁属性应该是虚拟的。如果它不是虚拟的,那么一个只检索书籍的普通查询将始终保持空白。使其虚拟化允许Entity Framework创建一个从Book继承的动态代理类,

正在尝试为现有的PHP/MySql库应用程序创建一个MVC应用程序。我很难让最基本的东西正常工作,我觉得自己像个白痴

我定义了以下类:

图书类别:

类型类:

当我运行这个程序时,我看到创建的每个book对象都有一个流派对象,但它是空的,并且没有填充流派的数据


book类中的GenreId是一个外键


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

这本书的体裁属性应该是虚拟的。如果它不是虚拟的,那么一个只检索书籍的普通查询将始终保持空白。使其虚拟化允许Entity Framework创建一个从Book继承的动态代理类,该类使用代码实现流派属性的getter,以发出查询来填充并从数据库返回流派

您已经将该类型的书籍集合设置为虚拟的,这样就可以作为延迟获取属性使用了


延迟加载的另一种方法是使用。在查询中包含以包含流派属性。

book类中的GenreId是外键,在数据库中是否如此?最初不是,我在开始使用MVC时添加了它
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
}
public class Genre
{
    public int GenreID { get; set; }
    public string GenreName { get; set; }

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