我不太确定我在这里错过了什么。这似乎是一个没有头脑,但出于某种原因,类别总是返回为null,我总是遇到这些问题时,使用实体框架。我想弄清楚我做错了什么。产品ID、产品名称和类别ID都有数据,但类别总是空的。我试图收回一个产品的列表,以及与产品相关的类别。
任何帮助都将不胜感激。
使用臭名昭著的Northwind数据库
[Table("Products")]
public class Products
{
[Key]
public int ProductID { get; set; }
public string ProductName { get; set; }
public int CategoryID { get; set; }
[ForeignKey("CategoryID")]
public virtual Categories Category { get; set; }
}
[Table("Categories")]
public class Categories
{
[Key]
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public virtual ICollection<Products> Product { get; set; }
}DbContext (相关代码)
public DbSet<Categories> Categories { get; set; }
public DbSet<Products> Products { get; set; }这是从我的存储库返回产品的代码
public IEnumerable<Products> GetAll()
{
return _db.Products.AsEnumerable();
}发布于 2016-02-12 19:06:43
您应该从Microsoft.Data.Entity名称空间中使用EntityFramework.Core程序集的扩展方法Include()。
using Microsoft.Data.Entity;
...
return _db.Products.Include(p => p.Category).AsEnumerable();因为EF7不支持对相关实体的延迟加载,就像它是在EF6中实现的那样。因此,您需要使用.Include方法加载所有相关实体。也许在未来,它将得到支持。
您可以遵循EF7这里的路线图,https://github.com/aspnet/EntityFramework/wiki/Roadmap
https://stackoverflow.com/questions/35369455
复制相似问题