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);
    }
}

注釈

ObjectContextAttachを呼び出して、オブジェクトをオブジェクト コンテキストにアタッチします。 この操作は、オブジェクトが既にデータ ソースに存在していても、現在コンテキストにアタッチされていない場合に行います。

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

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

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

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

オブジェクトをアタッチする場合は、次の考慮事項が適用されます。

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

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

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

適用対象

こちらもご覧ください