EntityCollection<TEntity>.Attach EntityCollection<TEntity>.Attach EntityCollection<TEntity>.Attach EntityCollection<TEntity>.Attach Method

Definizione

Definisce una relazione tra due oggetti collegati in un contesto dell'oggetto.Defines a relationship between two attached objects in an object context.

Overload

Attach(IEnumerable<TEntity>) Attach(IEnumerable<TEntity>) Attach(IEnumerable<TEntity>) Attach(IEnumerable<TEntity>)

Definisce le relazioni tra un oggetto e un insieme di oggetti correlati in un contesto dell'oggetto.Defines relationships between an object and a collection of related objects in an object context.

Attach(TEntity) Attach(TEntity) Attach(TEntity) Attach(TEntity)

Definisce una relazione tra due oggetti collegati in un contesto dell'oggetto.Defines a relationship between two attached objects in an object context.

Attach(IEnumerable<TEntity>) Attach(IEnumerable<TEntity>) Attach(IEnumerable<TEntity>) Attach(IEnumerable<TEntity>)

Definisce le relazioni tra un oggetto e un insieme di oggetti correlati in un contesto dell'oggetto.Defines relationships between an object and a collection of related objects in an object context.

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)> -> unit
Public Sub Attach (entities As IEnumerable(Of TEntity))

Parametri

entities
IEnumerable<TEntity>

Insieme di oggetti nel contesto dell'oggetto correlati all'oggetto di origine.Collection of objects in the object context that are related to the source object.

Eccezioni

L'insieme entities è null.entities collection is null.

L'oggetto di origine o un oggetto nell'insieme entities è null o non si trova nello stato Unchanged o Modified.The source object or an object in the entities collection is null or is not in an Unchanged or Modified state.

-oppure--or- Non è possibile definire la relazione in base ai metadati EDM.The relationship cannot be defined based on the EDM metadata. Questa condizione può verificarsi quando l'associazione nello schema concettuale non supporta una relazione tra i due tipi.This can occur when the association in the conceptual schema does not support a relationship between the two types.

Commenti

Il metodo Attach viene utilizzato per definire le relazioni tra un oggetto e una raccolta di oggetti correlati quando sia l'oggetto di origine che la raccolta di oggetti correlati sono già presenti nel contesto dell'oggetto.The Attach method is used to define relationships between an object and a collection of related objects when both the source object and the collection of related objects already exist in the object context. Per connettere un oggetto o un oggetto grafico in cui le relazioni sono già definite, chiamare il metodo Attach su ObjectContext.To attach an object or an object graph where the relationships are already defined, call the Attach method on the ObjectContext. Per creare un nuovo oggetto correlato all'oggetto di origine, chiamare il metodo Add su EntityCollection<TEntity>.To create a new object that is related to the source object, call the Add method on the EntityCollection<TEntity>. Per ulteriori informazioni, vedere collegamento e scollegamento di oggetti.For more information, see Attaching and Detaching Objects.

Se la raccolta è stata già riempita o parzialmente riempita, il metodo Attach unisce le entità esistenti con le entità specificate.If the collection is already filled or partially filled, the Attach method merges existing entities with the given entities. Le entità specificate non vengono considerate come il set completo di entità correlate.The given entities are not assumed to be the complete set of related entities.

Tutte le entità passate devono trovarsi nello stato Unchanged o Modified.All entities passed in must be in the Unchanged or Modified state. Gli oggetti nello stato Deleted sono consentiti solo quando è in corso la registrazione dell'istanza della relazione da parte del gestore degli stati.Objects in the Deleted state are only allowed when the state manager is already tracking the relationship instance.

Attach(TEntity) Attach(TEntity) Attach(TEntity) Attach(TEntity)

Definisce una relazione tra due oggetti collegati in un contesto dell'oggetto.Defines a relationship between two attached objects in an object context.

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

Parametri

entity
TEntity TEntity TEntity TEntity

Oggetto da collegare.The object being attached.

Eccezioni

Quando l'oggetto entity è null.When the entity is null.

Quando entity non può essere correlato all'oggetto di origine.When the entity cannot be related to the source object. Questa condizione può verificarsi quando l'associazione nello schema concettuale non supporta una relazione tra i due tipi.This can occur when the association in the conceptual schema does not support a relationship between the two types.

In alternativa-or- Quando uno qualsiasi degli oggetti è null o non si trova nello stato Unchanged o Modified.When either object is null or is not in an Unchanged or Modified state.

Esempi

Questo esempio è basato su.This example is based on the . Per eseguire il codice incluso in questo esempio, è necessario avere già aggiunto il modello Sales di Adventure Works al progetto e avere configurato il progetto per l'utilizzo di Entity Framework.To run the code in this example, you must have already added the AdventureWorks Sales Model to your project and configured your project to use the Entity Framework. A tale scopo, completare le procedure descritte in procedura: Configurare manualmente un progetto Entity Framework e procedura: Definire manualmente i filedi modello e di mapping.To do this, complete the procedures in How to: Manually Configure an Entity Framework Project and How to: Manually Define the Model and Mapping Files.

In questo esempio viene collegato un insieme SalesOrderDetail di oggetti scollegati e un SalesOrderHeader oggetto scollegato a un contesto dell'oggetto, quindi vengono definite le relazioni SalesOrderHeader tra l'oggetto SalesOrderDetail e ogni oggetto.This example attaches a collection of detached SalesOrderDetail objects and a detached SalesOrderHeader object to an object context, and then defines the relationships between the SalesOrderHeader object and each SalesOrderDetail object.

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

Commenti

Il metodo Attach viene utilizzato per definire le relazioni tra due oggetti quando entrambi gli oggetti sono già presenti nel contesto dell'oggetto.The Attach method is used to define relationships between two objects when both objects already exist in the object context. Per connettere un oggetto o un oggetto grafico in cui le relazioni sono già definite, chiamare il metodo Attach su ObjectContext.To attach an object or an object graph where the relationships are already defined, call the Attach method on the ObjectContext. Per creare un nuovo oggetto correlato all'oggetto di origine, chiamare il metodo Add su EntityCollection<TEntity>.To create a new object that is related to the source object, call the Add method on the EntityCollection<TEntity>. Per ulteriori informazioni, vedere collegamento e scollegamento di oggetti.For more information, see Attaching and Detaching Objects.

Se EntityCollection<TEntity> ha già caricato gli oggetti, il metodo Attach unisce insieme l'oggetto agli oggetti esistenti in EntityCollection<TEntity>.If the EntityCollection<TEntity> already has loaded objects, the Attach method merges the object together with the existing objects in the EntityCollection<TEntity>.

L'oggetto connesso non viene considerato come set completo di oggetti entità correlati.The attached object is not assumed to be the complete set of related entity objects.

L'oggetto associato a EntityCollection<TEntity> e tutti gli oggetti ad esso connessi devono trovarsi nello stato Unchanged o Modified.The object associated with this EntityCollection<TEntity> and all objects being attached to it must be in an Unchanged or Modified state.

Gli oggetti nello stato Deleted possono essere connessi solo quando è in corso la registrazione dell'istanza della relazione da parte di ObjectStateManager.Objects in the Deleted state can only be attached when the ObjectStateManager is already tracking the relationship instance.

Si applica a