首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架7关系

实体框架7关系
EN

Stack Overflow用户
提问于 2016-02-12 18:12:08
回答 1查看 103关注 0票数 1

我不太确定我在这里错过了什么。这似乎是一个没有头脑,但出于某种原因,类别总是返回为null,我总是遇到这些问题时,使用实体框架。我想弄清楚我做错了什么。产品ID、产品名称和类别ID都有数据,但类别总是空的。我试图收回一个产品的列表,以及与产品相关的类别。

任何帮助都将不胜感激。

使用臭名昭著的Northwind数据库

代码语言:javascript
复制
[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 (相关代码)

代码语言:javascript
复制
public DbSet<Categories> Categories { get; set; } 
public DbSet<Products> Products { get; set; }

这是从我的存储库返回产品的代码

代码语言:javascript
复制
 public IEnumerable<Products> GetAll()
 {
     return _db.Products.AsEnumerable();
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-12 19:06:43

您应该从Microsoft.Data.Entity名称空间中使用EntityFramework.Core程序集的扩展方法Include()。

代码语言:javascript
复制
    using Microsoft.Data.Entity;
    ...
    return _db.Products.Include(p => p.Category).AsEnumerable();

因为EF7不支持对相关实体的延迟加载,就像它是在EF6中实现的那样。因此,您需要使用.Include方法加载所有相关实体。也许在未来,它将得到支持。

您可以遵循EF7这里的路线图,https://github.com/aspnet/EntityFramework/wiki/Roadmap

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35369455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档