EntityCollection<TEntity>.Attach Méthode

Définition

Définit une relation entre deux objets attachés dans un contexte d'objet.Defines a relationship between two attached objects in an object context.

Surcharges

Attach(IEnumerable<TEntity>)

Définit les relations entre un objet et une collection d'objets connexes dans un contexte d'objet.Defines relationships between an object and a collection of related objects in an object context.

Attach(TEntity)

Définit une relation entre deux objets attachés dans un contexte d'objet.Defines a relationship between two attached objects in an object context.

Attach(IEnumerable<TEntity>)

Définit les relations entre un objet et une collection d'objets connexes dans un contexte d'objet.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))

Paramètres

entities
IEnumerable<TEntity>

Collection d'objets dans le contexte de l'objet qui sont associés à l'objet source.Collection of objects in the object context that are related to the source object.

Exceptions

La collection entities est null.entities collection is null.

L'objet source ou un objet de la collection entities a la valeur null, ou n'est pas dans l'état Unchanged ou Modified.The source object or an object in the entities collection is null or is not in an Unchanged or Modified state.

- ou --or- La relation ne peut pas être définie en fonction des métadonnées EDM.The relationship cannot be defined based on the EDM metadata. Cela peut se produire lorsque l'association dans le schéma conceptuel ne prend pas en charge une relation entre les deux types.This can occur when the association in the conceptual schema does not support a relationship between the two types.

Remarques

La méthode Attach est utilisée pour définir les relations entre un objet et une collection d’objets connexes lorsque l’objet source et la collection d’objets connexes existent déjà dans le contexte de l’objet.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. Pour attacher un objet ou un graphique d'objet lorsque les relations sont déjà définies, appelez la méthode Attach sur l'objet ObjectContext.To attach an object or an object graph where the relationships are already defined, call the Attach method on the ObjectContext. Pour créer un nouvel objet associé à l'objet source, appelez la méthode Add sur l'objet EntityCollection<TEntity>.To create a new object that is related to the source object, call the Add method on the EntityCollection<TEntity>. Pour plus d’informations, consultez attachement et détachement d’objets.For more information, see Attaching and Detaching Objects.

Si la collection est déjà remplie ou partiellement remplie, la méthode Attach fusionne les entités existantes avec les entités données.If the collection is already filled or partially filled, the Attach method merges existing entities with the given entities. Il n'est pas supposé que les entités données sont le jeu complet d'entités associées.The given entities are not assumed to be the complete set of related entities.

Toutes les entités passées doivent être à l'état Unchanged ou Modified.All entities passed in must be in the Unchanged or Modified state. Les objets à l'état Deleted sont autorisés uniquement lorsque le gestionnaire d'état effectue déjà le suivi de l'instance de relation.Objects in the Deleted state are only allowed when the state manager is already tracking the relationship instance.

Attach(TEntity)

Définit une relation entre deux objets attachés dans un contexte d'objet.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)

Paramètres

entity
TEntity

Objet qui est attaché.The object being attached.

Exceptions

Lorsque le paramètre entity est null.When the entity is null.

Lorsque le paramètre entity ne peut pas être mis en rapport avec l'objet source.When the entity cannot be related to the source object. Cela peut se produire lorsque l'association dans le schéma conceptuel ne prend pas en charge une relation entre les deux types.This can occur when the association in the conceptual schema does not support a relationship between the two types.

- ou --or- Lorsque l'un ou l'autre des objets a la valeur null ou n'est pas dans l'état Unchanged ou Modified.When either object is null or is not in an Unchanged or Modified state.

Exemples

Cet exemple est basé sur.This example is based on the . Pour exécuter le code de cet exemple, vous devez déjà avoir ajouté le modèle de vente AdventureWorks Sales Model à votre projet et configuré ce dernier pour qu’il utilise 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. Pour ce faire, effectuez les procédures décrites dans la rubrique Procédure : Configurez manuellement un projet Entity Framework et procédez comme suit : Définissez manuellement les fichiersde modèle et de mappage.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.

Cet exemple attache une collection SalesOrderDetail d’objets détachés et un SalesOrderHeader objet détaché à un contexte d’objet, puis définit les relations entre l' SalesOrderHeader objet et chaque SalesOrderDetail objet.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

Remarques

La méthode Attach est utilisée pour définir les relations entre deux objets lorsque les deux objets existent déjà dans le contexte de l'objet.The Attach method is used to define relationships between two objects when both objects already exist in the object context. Pour attacher un objet ou un graphique d'objet lorsque les relations sont déjà définies, appelez la méthode Attach sur l'objet ObjectContext.To attach an object or an object graph where the relationships are already defined, call the Attach method on the ObjectContext. Pour créer un nouvel objet associé à l'objet source, appelez la méthode Add sur l'objet EntityCollection<TEntity>.To create a new object that is related to the source object, call the Add method on the EntityCollection<TEntity>. Pour plus d’informations, consultez attachement et détachement d’objets.For more information, see Attaching and Detaching Objects.

Si l’objet EntityCollection<TEntity> contient déjà des objets chargés, la méthode Attach fusionne l’objet avec les objets existants dans l’objet 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>.

Il n'est pas supposé que l'objet attaché est le jeu complet d'objets entité associés.The attached object is not assumed to be the complete set of related entity objects.

L'objet associé à cet objet EntityCollection<TEntity> et tous les objets qui y sont attachés doivent être à l'état Unchanged ou Modified.The object associated with this EntityCollection<TEntity> and all objects being attached to it must be in an Unchanged or Modified state.

Les objets à l'état Deleted peuvent être attachés uniquement lorsque l'objet ObjectStateManager effectue déjà le suivi de l'instance de relation.Objects in the Deleted state can only be attached when the ObjectStateManager is already tracking the relationship instance.

S’applique à