2

私のアプリケーションでは、最初にエンティティ フレームワーク 5 コードを使用していました。"Include" を使用せずにサブ テーブル データを取得したい

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);

ただし、2 つのデータベース接続が発生します。インクルードは通常、関連データを取得するための一般的なソリューションである JOIN ステートメントに変換されます。

追跡付きの ObjectContext を持つ POCO エンティティではなく、LoadWith ステートメントを使用できます。しかし、実際にはそれも含まれています

于 2013-05-20T11:42:35.700 に答える