我在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”的字符串参数。
答案 0 :(得分:7)
你错过了使用吗? VS 2010在这个问题上有点愚蠢,你经常需要明确地加入:
using System.Data.Entity
..获取lambda include选项。
它不会提示您添加它,因为它已经有一个基于字符串的定义,可以在
下包含System.Linq
.Include(x =&gt; x.MyObject)实际上是现有linq方法的新扩展方法。