我有这样的东西
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();
那么我每次都必须加载类别吗?为什么包含不起作用?