asp.net 5 mvc 6 模型问题

asp.net 5 mvc 6 model issue

我正在尝试列出新闻部分的一些数据。我有两张桌子。新闻和新闻类别

这是我的模型类

public class News
{
    public int NewsId { get; set; }
    public string Name { get; set; }
    public int NewsCategoryId { get; set; }
    public virtual NewsCategory NewsCategory { get; set; }
}
public class NewsCategory
{
    public int NewsCategoryId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }

    public virtual List<News> News { get; set; }
}

public class NewsDbContext : DbContext
{

    protected override void OnConfiguring(DbContextOptions options)
    {
        options.UseSqlServer(Startup.Configuration.Get("Data:DefaultConnection:ConnectionString"));
    }

    public DbSet<News> News { get; set; }
    public DbSet<NewsCategory> NewsCategory { get; set; }
}

这也有效,当我在我的控制器中感染数据时,除了一件事。当我制作新闻时,我没有对我的类别的引用。

我的控制器代码:

var news = _db.News.ToList();

这输出:

    [
  {
    "NewsId": 1,
    "Name": "ghdfgd",
    "NewsCategoryId": 1,
    "NewsCategory": null
  },
  {
    "NewsId": 2,
    "Name": "gdfgdf",
    "NewsCategoryId": 1,
    "NewsCategory": null
  }
]

如您所见,NewsCategory 是空的。虽然不是:)

我错过了什么?

这是因为您懒加载导航属性。 查看 this 文章。

只需这样做:

var news = _db.News.Include(n => n.NewsCategory).ToList();