2

我的应用程序我首先使用了实体框架 5 代码我想在不使用“包含”的情况下获取子表数据

public class Category
{
  public int Id {get; set;}
  public string Name {get; set;}
  public virtual ICollection<Product> Products{get;set;} 
} 

public class Product 
{
  public int id {get;set}
  public string Name{get;set;}
  public virtual Category {get;set;}
}

我需要两种方式都得到它,所以它有任何解决方案

4

1 回答 1

2

我认为,在没有包含的情况下获取集合就是在没有加入 SQL 的情况下获取集合:)

你当然可以

var category = context.Categories.First(c=>c.Id == id);
category.Products = context.Products.Where(p=>p.CategoryId == id);

但这会导致两个数据库连接。Include 通常被翻译为 JOIN 语句,这是检索相关数据的常用解决方案。

在带有 ObjectContext 的非 POCO 实体中,您可以使用 LoadWith 语句。但它实际上也包括在内

于 2013-05-20T11:42:35.700 回答