ObjectContext.Attach(IEntityWithKey) 메서드

정의

개체에 엔터티 키가 있으면 개체 또는 개체 그래프를 개체 컨텍스트에 연결합니다.Attaches an object or object graph to the object context when the object has an entity key.

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

연결할 개체입니다.The object to attach.

예외

entitynull인 경우The entity is null.

엔터티 키가 잘못된 경우Invalid entity key.

예제

이 항목의 예제는 Microsoft SQL Server 제품 샘플: 데이터베이스를 기반으로 합니다.The example in this topic is based on the Microsoft SQL Server Product Samples: Database. 이 예에서는 두 개의 개체가 연결 된 다음 관계가 정의 됩니다.In this example, two objects are attached and then the relationship is defined.

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);
    }
}
Private Shared Sub AttachRelatedObjects(ByVal currentContext As ObjectContext, ByVal detachedOrder As SalesOrderHeader, ByVal detachedItems As List(Of SalesOrderDetail))
    ' 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. 
    For Each item As SalesOrderDetail In detachedItems
        currentContext.Attach(item)
        detachedOrder.SalesOrderDetails.Attach(item)
    Next
End Sub

설명

에서를 호출 하 여 개체를 Attach ObjectContext 개체 컨텍스트에 연결 합니다.Call Attach on the ObjectContext to attach the object to the object context. 개체가 데이터 소스에 이미 있지만 컨텍스트에 현재 연결 되어 있지 않은 경우이 작업을 수행 합니다.Do this when the object already exists in the data source but is currently not attached to the context. 자세한 내용은 사용자 지정 개체합니다.For more information, see Customizing Objects.

Attach 는 개체 그래프에 개체 또는 최상위 개체를 연결 하는 데 사용 됩니다.Attach is used to attach an object or the top-level object in an object graph.

연결 되는 개체는을 IEntityWithKey 노출 하기 위해를 구현 해야 합니다 EntityKey .The object being attached must implement IEntityWithKey to expose an EntityKey. 생성 된 모든 엔터티 클래스는 IEntityWithKey 를 구현 합니다.All generated entity classes implement IEntityWithKey.

관련 개체를 연결 하는 경우에도 또는에서를 호출 하 여 관계를 정의 해야 합니다 Attach EntityReference<TEntity> EntityCollection<TEntity> .When you attach related objects, you must also call Attach on the EntityReference<TEntity> or the EntityCollection<TEntity> to define the relationship.

이 메서드는 AttachTo 메서드를 호출합니다.This method calls the AttachTo method.

개체를 연결할 때 다음 사항을 고려해 야 합니다.The following considerations apply when attaching objects:

  • 연결 되는 개체에 관련 개체가 있는 경우 해당 개체도 개체 컨텍스트에 연결 됩니다.If the object being attached has related objects, those objects will also be attached to the object context.

  • 개체는 변경 되지 않은 상태의 개체 컨텍스트에 추가 됩니다.Objects are added to the object context in an unchanged state.

  • 메서드에 전달 되는 개체에는 Attach 유효한 값이 있어야 합니다 EntityKey .The object that is passed to the Attach method must have a valid EntityKey value. 개체에 유효한 값이 없으면 메서드를 EntityKey 사용 AttachTo 하 여 엔터티 집합의 이름을 지정 합니다.If the object does not have a valid EntityKey value, use the AttachTo method to specify the name of the entity set.

적용 대상

추가 정보