ObjectContext.Attach(IEntityWithKey) メソッド

定義

オブジェクトがエンティティ キーを持つ場合にオブジェクトまたはオブジェクト グラフをオブジェクト コンテキストにアタッチします。

public:
 void Attach(System::Data::Objects::DataClasses::IEntityWithKey ^ entity);
public void Attach (System.Data.Objects.DataClasses.IEntityWithKey entity);
member this.Attach : System.Data.Objects.DataClasses.IEntityWithKey -> unit
Public Sub Attach (entity As IEntityWithKey)

パラメーター

entity
IEntityWithKey

アタッチするオブジェクト。

例外

entitynull です。

エンティティ キーが無効です。

この例では、2 つのオブジェクトをアタッチしてリレーションシップを定義します。

private static void AttachRelatedObjects(
    ObjectContext currentContext,
    SalesOrderHeader detachedOrder,
    List<SalesOrderDetail> detachedItems)
{
    // Attach the root detachedOrder object to the supplied context.
    currentContext.Attach(detachedOrder);

    // Attach each detachedItem to the context, and define each relationship
    // by attaching the attached SalesOrderDetail object to the EntityCollection on
    // the SalesOrderDetail navigation property of the now attached detachedOrder.
    foreach (SalesOrderDetail item in detachedItems)
    {
        currentContext.Attach(item);
        detachedOrder.SalesOrderDetails.Attach(item);
    }
}

注釈

オブジェクトをオブジェクト コンテキストにアタッチするには、AttachObjectContext を呼び出します。 この方法は、オブジェクトが既にデータ ソースに存在するが、現在コンテキストにアタッチされていない場合に使用します。 詳細については、「 オブジェクトのカスタマイズ」を参照してください。

Attach は、オブジェクト グラフ内のオブジェクトまたは最上位レベルのオブジェクトをアタッチするために使用されます。

アタッチされるオブジェクトは、IEntityWithKey を実装して EntityKey を公開する必要があります。 生成されたエンティティ クラスは、すべて IEntityWithKey を実装しています。

関連オブジェクトをアタッチする場合は、 または EntityCollection<TEntity>EntityReference<TEntity>呼び出Attachしてリレーションシップを定義する必要もあります。

このメソッドは、AttachTo メソッドを呼び出します。

オブジェクトをアタッチする際は、次の点に注意してください。

  • アタッチされるオブジェクトに関連オブジェクトがある場合、それらの関連オブジェクトもオブジェクト コンテキストにアタッチされます。

  • オブジェクトは未変更状態でオブジェクト コンテキストに追加されます。

  • Attach メソッドに渡されるオブジェクトには、有効な EntityKey 値が必要です。 オブジェクトに有効な EntityKey 値がない場合は、AttachTo メソッドを使用してエンティティ セットの名前を指定します。

適用対象

こちらもご覧ください