EntityCollection<TEntity>.Attach Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit une relation entre deux objets attachés dans un contexte d’objet.
Surcharges
| Nom | Description |
|---|---|
| Attach(IEnumerable<TEntity>) |
Définit les relations entre un objet et une collection d’objets connexes dans un contexte d’objet. |
| Attach(TEntity) |
Définit une relation entre deux objets attachés dans un contexte d’objet. |
Attach(IEnumerable<TEntity>)
Définit les relations entre un objet et une collection d’objets connexes dans un contexte d’objet.
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))
Paramètres
- entities
- IEnumerable<TEntity>
Collection d’objets dans le contexte d’objet qui sont liés à l’objet source.
Exceptions
entities collection est null.
L’objet source ou un objet de la entities collection est ou n’est null pas dans un Unchanged état.Modified
- ou -
La relation ne peut pas être définie en fonction des métadonnées EDM. Cela peut se produire lorsque l’association dans le schéma conceptuel ne prend pas en charge une relation entre les deux types.
Remarques
La Attach méthode est utilisée pour définir des 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. Pour attacher un objet ou un graphique d’objets où les relations sont déjà définies, appelez la Attach méthode sur le ObjectContext. Pour créer un objet lié à l’objet source, appelez la Add méthode sur le EntityCollection<TEntity>. Pour plus d’informations, consultez Attachement et détachement d’objets.
Si la collection est déjà remplie ou partiellement remplie, la Attach méthode fusionne les entités existantes avec les entités données. Les entités données ne sont pas supposées être l’ensemble complet d’entités associées.
Toutes les entités passées doivent être dans l’état ou Unchanged dans l’étatModified. Les objets dans l’état Deleted ne sont autorisés que lorsque le gestionnaire d’état suit déjà l’instance de relation.
S’applique à
Attach(TEntity)
Définit une relation entre deux objets attachés dans un contexte d’objet.
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 attaché.
Exceptions
Quand c’est entitynull.
Lorsque l’objet entity source ne peut pas être lié. Cela peut se produire lorsque l’association dans le schéma conceptuel ne prend pas en charge une relation entre les deux types.
- ou -
Lorsque l’un des objets est ou n’est null pas dans un état ou Unchanged dans un Modified état.
Exemples
Cet exemple est basé sur le modèle de vente Adventure Works. Pour exécuter le code dans cet exemple, vous devez avoir déjà ajouté le modèle de vente AdventureWorks à votre projet et configuré votre projet pour utiliser Entity Framework. Pour ce faire, suivez les procédures de How to : Configurez manuellement entity Framework Project et How to : Define the Model and Mapping Files.
Cet exemple attache une collection d’objets détachés SalesOrderDetail et un objet détaché SalesOrderHeader à un contexte d’objet, puis définit les relations entre l’objet SalesOrderHeader et chaque SalesOrderDetail objet.
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);
}
}
Remarques
La Attach méthode est utilisée pour définir des relations entre deux objets quand les deux objets existent déjà dans le contexte de l’objet. Pour attacher un objet ou un graphique d’objets où les relations sont déjà définies, appelez la Attach méthode sur le ObjectContext. Pour créer un objet lié à l’objet source, appelez la Add méthode sur le EntityCollection<TEntity>. Pour plus d’informations, consultez Attachement et détachement d’objets.
Si les EntityCollection<TEntity> objets déjà chargés, la Attach méthode fusionne l’objet avec les objets existants dans le EntityCollection<TEntity>.
L’objet attaché n’est pas supposé être l’ensemble complet d’objets d’entité connexes.
L’objet associé à ceci EntityCollection<TEntity> et tous les objets qui lui sont attachés doivent être dans un état ou Unchanged dans un Modified état.
Les objets dans l’état Deleted ne peuvent être attachés que lorsque l’instance ObjectStateManager de relation est déjà en cours de suivi.