EF Code首先是Eager加载问题

时间:2011-04-30 06:43:17

标签: ef-code-first eager-loading

我在1:n关系中有两个实体:类别和产品。

public class Category 
{
   public int CategoryID { get; set; }
   public string CategoryName { get; set; }

   public virtual ICollection<Product> Products { get; set; }
}

public class Product
{
   public int ProductID { get; set; }
   public string ProductName { get; set; }

  public virtual Product { get; set; }
}

public class context : DbContext
{
    public DbSet<Category> Categories { get; set; }
    public DbSet<Product> Products { get; set; }
}

我希望通过Eager加载来加载每个类别的产品。

context.Categories.Include(c=>c.Products)

但Include不加载任何导航属性。它只接受一个名为“path”的字符串参数。

1 个答案:

答案 0 :(得分:7)

你错过了使用吗? VS 2010在这个问题上有点愚蠢,你经常需要明确地加入:

using System.Data.Entity 

..获取lambda include选项。

它不会提示您添加它,因为它已经有一个基于字符串的定义,可以在

下包含
System.Linq

.Include(x =&gt; x.MyObject)实际上是现有linq方法的新扩展方法。