EntityReference<TEntity>.Load(MergeOption) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したマージ オプションを使用して、この EntityReference<TEntity> の関連オブジェクトを読み込みます。
public:
override void Load(System::Data::Objects::MergeOption mergeOption);
public override void Load (System.Data.Objects.MergeOption mergeOption);
override this.Load : System.Data.Objects.MergeOption -> unit
Public Overrides Sub Load (mergeOption As MergeOption)
パラメーター
- mergeOption
- MergeOption
オブジェクトが既に ObjectContextに存在する場合にオブジェクトを返す方法を指定します。
例外
EntityReference<TEntity> のソースは null
です。
-又は-
クエリが複数の関連する終了を返しました。
-又は-
クエリから 0 個の関連する終了が返され、1 つの関連する終了が想定されていました。
注釈
このメソッドは、関連オブジェクトを読み込むのに使用されます。
読み込まれると、関連するオブジェクトは Value プロパティからアクセスされます。
関連するオブジェクトを明示的に読み込むには、ナビゲーション プロパティによって返される関連する末尾で Load
メソッドを呼び出す必要があります。 一対多リレーションシップの場合は、EntityCollection<TEntity>で Load メソッドを呼び出し、一対一リレーションシップの場合は、EntityReference<TEntity>の Load を呼び出します。 これにより、関連するオブジェクト データがオブジェクト コンテキストに読み込まれます。 クエリが結果を返すときは、foreach
ループ (Visual Basic のFor Each...Next
) を使用してオブジェクトのコレクションを列挙し、結果内の各エンティティの EntityReference<TEntity> プロパティと EntityCollection<TEntity> プロパティに対して Load
メソッドを条件付きで呼び出すことができます。
Load メソッドは、IsLoaded が true
かどうかに関係なく、データ ソースから関連オブジェクトを読み込みます。
手記
foreach
(C#) または For Each
(Visual Basic) 列挙中に Load メソッドを呼び出すと、Object Services は新しいデータ リーダーを開こうとします。 接続文字列で multipleactiveresultsets=true
を指定して、複数のアクティブな結果セットを有効にしていない限り、この操作は失敗します。 クエリの結果を List<T> コレクションに読み込むこともできます。 これにより、データ リーダーが閉じられ、コレクションを列挙して参照先オブジェクトを読み込むことができます。
このメソッドは、関連オブジェクトを読み込む前に内部 RelatedEnd.ValidateLoad
メソッドを呼び出します。これにより、Load の呼び出しに正しい条件があることを検証します。
RelatedEnd.ValidateLoad
メソッドでは、次のことが確認されます。
- 有効な ObjectContext が存在します。
- エンティティが Deleted 状態ではありません。
- ソース エンティティが NoTrackingされた場合にのみ、Load の MergeOption を NoTracking する必要があります。 ソース エンティティが他の MergeOptionを使用して取得された場合、LoadMergeOption は NoTracking 以外の任意の場合があります (たとえば、エンティティが OverwriteChanges で読み込まれ、Load オプションを AppendOnlyできます)。
-
mergeOption
が NoTrackingされている場合、Load は既に読み込まれているエンティティで呼び出されず、Load は空ではない追跡されていない RelatedEndで呼び出されません。
関連オブジェクトが既に ObjectContextに読み込まれている場合、Load メソッドは、mergeOption
パラメーターで指定された MergeOption を適用します。 詳細については、「ID 解決、状態管理、および変更追跡を参照してください。
適用対象
こちらもご覧ください
- オブジェクトとしてのデータのクエリの (Entity Framework)
.NET