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();
我正在尝试列出新闻部分的一些数据。我有两张桌子。新闻和新闻类别
这是我的模型类
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();