次の方法で共有


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 が存在します。
  • エンティティが Deleted 状態ではありません。
  • ソース エンティティが NoTrackingされた場合にのみ、LoadMergeOptionNoTracking する必要があります。 ソース エンティティが他の MergeOptionを使用して取得された場合、LoadMergeOptionNoTracking 以外の任意の場合があります (たとえば、エンティティが OverwriteChanges で読み込まれ、Load オプションを AppendOnlyできます)。
  • mergeOptionNoTrackingされている場合、Load は既に読み込まれているエンティティで呼び出されず、Load は空ではない追跡されていない RelatedEndで呼び出されません。

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

適用対象

こちらもご覧ください