次の方法で共有


EntityReference<TEntity>.Load(MergeOption) メソッド

定義

指定したマージ オプションを使用して、この 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 メソッドは、IsLoadedtrueされているかどうかに関係なく、データ ソースから関連オブジェクトを読み込みます。

手記

foreach (C#) または For Each (Visual Basic) 列挙中に Load メソッドを呼び出すと、Object Services は新しいデータ リーダーを開こうとします。 接続文字列で multipleactiveresultsets=true を指定して、複数のアクティブな結果セットを有効にしていない限り、この操作は失敗します。 クエリの結果を List<T> コレクションに読み込むこともできます。 これにより、データ リーダーが閉じられ、コレクションを列挙して参照先オブジェクトを読み込むことができます。

このメソッドは、関連オブジェクトを読み込む前に内部 RelatedEnd.ValidateLoad メソッドを呼び出します。これにより、 Load の呼び出しに正しい条件があることを検証します。 RelatedEnd.ValidateLoad メソッドでは、次のことが確認されます。

関連オブジェクトが既にObjectContextに読み込まれている場合、Load メソッドは、mergeOption パラメーターで指定されたMergeOptionを適用します。 詳細については、「 ID 解決、状態管理、および変更の追跡」を参照してください。

適用対象

こちらもご覧ください