0

可能重复:
Linq-to-entities - Include() 方法未加载

我有这样东西

public class Product
{
    public int ProductId { get; set; }
    public string Name { get; set; }

    public int CategoryId { get; set; }
    [ForeignKey("CategoryId")]
    public virtual Category Category { get; set; }
}

public class Category
{
    public int CategoryId { get; set; }
    public string Name { get; set; }
}

在上下文中,我有:

public DbSet<Product> Products { get; set; }

但是当我尝试像这样使用它时:

List<Product> foo = (from p in Context.Products 
                     where p.Category.Name = "something" 
                     select p).ToList();

Product first = foo.First();

我设置了 Product.CategoryId 的值,但在 Category 中为 null

注意:我已经尝试使用 'Context.Products.Include("Category")' 并且不起作用。

这有效(类别首先加载):

List<Product> foo = (from p in Context.Products 
                     where p.Category.Name = "something" 
                     select p).ToList();

Product first = foo.First();

List<Category> categories = Context.Categories.ToList();

那么我每次都必须加载类别吗?为什么包含不起作用?

4

0 回答 0