EntityCollection<TEntity>.Attach Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.