関連 POCO エンティティの読み込み (Entity Framework)
POCO エンティティのリレーションシップ要件は、EntityObject から継承されるオブジェクトとは異なるので、関連オブジェクトを読み込むには少し異なるプロセスが必要になります。 関連オブジェクトの読み込みに関する全般的な情報については、「関連オブジェクトの読み込み (Entity Framework)」と「関連オブジェクトの読み込み (Entity Framework)」を参照してください。
POCO エンティティに関連するオブジェクトを読み込むには、次の方法を使用します。
明示的読み込み
POCO エンティティのナビゲーション プロパティがなくても、EntityCollection 型または EntityReference 型を返すことが可能であるため、これらのクラスが実装する Load メソッドを使用しても、関連オブジェクトの明示的読み込みは実行できません。 代わりに、ObjectContext クラスの LoadProperty メソッドを使用して、関連オブジェクトを明示的に読み込む必要があります。 次の例では、アイテムをすべて選択する指定されたラムダ式を使用して LoadProperty メソッドを呼び出すことで、Order
用の関連するLineItems
を読み込みます。' Because LazyLoadingEnabled is set to false, ' we need to explicitly load the related line items for the order. context.LoadProperty(order, Function(o) o.LineItems)
// Because LazyLoadingEnabled is set to false, // we need to explicitly load the related line items for the order. context.LoadProperty(order, o => o.LineItems);
詳細については、「方法: POCO エンティティを明示的に読み込む (Entity Framework)」を参照してください。
- 遅延読み込み
POCO エンティティで遅延読み込みをサポートするには、エンティティが遅延読み込みプロキシの作成の要件を満たしている必要があります。この要件については、「POCO プロキシの作成要件 (Entity Framework)」を参照してください。 POCO プロキシの遅延読み込みは、Entity Framework で生成された他のエンティティ型の場合と同じ方法で設定します。 詳細については、「方法: 遅延読み込みを使用して関連するオブジェクトを読み込む (Entity Framework)」を参照してください。
- 一括読み込み
クエリ パスを指定して、関連する POCO エンティティを返すことができます。 Include メソッドを使用して、ツールで生成されたエンティティ型の場合と同様に関連オブジェクトを集中的に返します。 詳細については、「方法: クエリ パスを使用して結果を構築する (Entity Framework)」を参照してください。