EntityCollection<TEntity>.Attach Método

Definición

Define una relación entre dos objetos adjuntos en un contexto de objeto.

Sobrecargas

Nombre Description
Attach(IEnumerable<TEntity>)

Define las relaciones entre un objeto y una colección de objetos relacionados en un contexto de objeto.

Attach(TEntity)

Define una relación entre dos objetos adjuntos en un contexto de objeto.

Attach(IEnumerable<TEntity>)

Define las relaciones entre un objeto y una colección de objetos relacionados en un contexto de objeto.

public:
 void Attach(System::Collections::Generic::IEnumerable<TEntity> ^ entities);
public void Attach(System.Collections.Generic.IEnumerable<TEntity> entities);
override this.Attach : seq<'Entity (requires 'Entity : null and 'Entity :> System.Data.Objects.DataClasses.IEntityWithRelationships)> -> unit
override this.Attach : seq<'Entity (requires 'Entity : null)> -> unit
Public Sub Attach (entities As IEnumerable(Of TEntity))

Parámetros

entities
IEnumerable<TEntity>

Colección de objetos en el contexto del objeto relacionado con el objeto de origen.

Excepciones

entities collection es null.

El objeto de origen o un objeto de la entities colección es null o no está en un Unchanged estado o Modified .

O bien

La relación no se puede definir en función de los metadatos de EDM. Esto puede ocurrir cuando la asociación en el esquema conceptual no admite una relación entre los dos tipos.

Comentarios

El Attach método se usa para definir relaciones entre un objeto y una colección de objetos relacionados cuando el objeto de origen y la colección de objetos relacionados ya existen en el contexto del objeto. Para adjuntar un objeto o un gráfico de objetos donde las relaciones ya están definidas, llame al Attach método en .ObjectContext Para crear un nuevo objeto relacionado con el objeto de origen, llame al Add método en .EntityCollection<TEntity> Para más información, consulte Adjuntar y desasociar objetos.

Si la colección ya está rellenada o parcialmente rellenada, el Attach método combina las entidades existentes con las entidades especificadas. No se supone que las entidades especificadas sean el conjunto completo de entidades relacionadas.

Todas las entidades pasadas deben estar en el Unchanged estado o Modified . Los objetos del Deleted estado solo se permiten cuando el administrador de estado ya está realizando el seguimiento de la instancia de relación.

Se aplica a

Attach(TEntity)

Define una relación entre dos objetos adjuntos en un contexto de objeto.

public:
 void Attach(TEntity entity);
public void Attach(TEntity entity);
override this.Attach : 'Entity -> unit
Public Sub Attach (entity As TEntity)

Parámetros

entity
TEntity

Objeto que se va a adjuntar.

Excepciones

Cuando es entitynull.

Cuando no entity se puede relacionar con el objeto de origen. Esto puede ocurrir cuando la asociación en el esquema conceptual no admite una relación entre los dos tipos.

O bien

Cuando el objeto es null o no está en un Unchanged estado o Modified .

Ejemplos

Este ejemplo se basa en el modelo de ventas de Adventure Works. Para ejecutar el código en este ejemplo, debe haber agregado el modelo de ventas de AdventureWorks al proyecto y configurado el proyecto para usar Entity Framework. Para ello, complete los procedimientos de Cómo: Configurar manualmente una Project y Cómo: Definir manualmente los archivos de modelo y asignación.

En este ejemplo se adjunta una colección de objetos desasociados SalesOrderDetail y un objeto desasociado SalesOrderHeader a un contexto de objeto y, a continuación, se definen las relaciones entre el SalesOrderHeader objeto y cada SalesOrderDetail objeto.

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

Comentarios

El Attach método se usa para definir relaciones entre dos objetos cuando ambos objetos ya existen en el contexto del objeto. Para adjuntar un objeto o un gráfico de objetos donde las relaciones ya están definidas, llame al Attach método en .ObjectContext Para crear un nuevo objeto relacionado con el objeto de origen, llame al Add método en .EntityCollection<TEntity> Para más información, consulte Adjuntar y desasociar objetos.

EntityCollection<TEntity> Si ya tiene objetos cargados, el Attach método combina el objeto junto con los objetos existentes en EntityCollection<TEntity>.

No se supone que el objeto adjunto es el conjunto completo de objetos de entidad relacionados.

El objeto asociado a esto EntityCollection<TEntity> y todos los objetos que se adjuntan a él deben estar en un Unchanged estado o Modified .

Los objetos del Deleted estado solo se pueden adjuntar cuando ObjectStateManager ya está realizando el seguimiento de la instancia de relación.

Se aplica a