EntityCollection<TEntity>.Attach Methode

Definitie

Definieert een relatie tussen twee gekoppelde objecten in een objectcontext.

Overloads

Name Description
Attach(IEnumerable<TEntity>)

Definieert relaties tussen een object en een verzameling gerelateerde objecten in een objectcontext.

Attach(TEntity)

Definieert een relatie tussen twee gekoppelde objecten in een objectcontext.

Attach(IEnumerable<TEntity>)

Definieert relaties tussen een object en een verzameling gerelateerde objecten in een objectcontext.

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

Parameters

entities
IEnumerable<TEntity>

Verzameling objecten in de objectcontext die zijn gerelateerd aan het bronobject.

Uitzonderingen

entities verzameling is null.

Het bronobject of een object in de entities verzameling heeft null of niet de UnchangedModified status.

– of –

De relatie kan niet worden gedefinieerd op basis van de EDM-metagegevens. Dit kan gebeuren wanneer de koppeling in het conceptuele schema geen relatie tussen de twee typen ondersteunt.

Opmerkingen

De Attach methode wordt gebruikt om relaties tussen een object en een verzameling gerelateerde objecten te definiëren wanneer zowel het bronobject als de verzameling gerelateerde objecten al in de objectcontext bestaan. Als u een object of een objectgrafiek wilt koppelen waarbij de relaties al zijn gedefinieerd, roept u de Attach methode aan op de ObjectContext. Als u een nieuw object wilt maken dat is gerelateerd aan het bronobject, roept u de Add methode op de EntityCollection<TEntity>. Zie Objecten koppelen en loskoppelen voor meer informatie.

Als de verzameling al is gevuld of gedeeltelijk is gevuld, Attach worden bestaande entiteiten samengevoegd met de opgegeven entiteiten. De opgegeven entiteiten worden niet verondersteld de volledige set gerelateerde entiteiten te zijn.

Alle doorgegeven entiteiten moeten de status of Modified de Unchanged status hebben. Objecten met de Deleted status zijn alleen toegestaan wanneer de statusbeheerder het relatie-exemplaar al bijhoudt.

Van toepassing op

Attach(TEntity)

Definieert een relatie tussen twee gekoppelde objecten in een objectcontext.

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

Parameters

entity
TEntity

Het object dat wordt gekoppeld.

Uitzonderingen

Wanneer het entity is null.

Wanneer het entity niet kan worden gerelateerd aan het bronobject. Dit kan gebeuren wanneer de koppeling in het conceptuele schema geen relatie tussen de twee typen ondersteunt.

– of –

Wanneer een object zich null bevindt of zich niet in een Unchanged of Modified status bevindt.

Voorbeelden

Dit voorbeeld is gebaseerd op het Adventure Works-verkoopmodel. Als u de code in dit voorbeeld wilt uitvoeren, moet u het AdventureWorks-verkoopmodel al aan uw project hebben toegevoegd en uw project zo configureren dat het Entity Framework wordt gebruikt. U doet dit door de procedures in Hoe u dit doet: Handmatig een Entity Framework-Project en Aanvullen: Handmatig het model en toewijzingsbestanden definiëren.

In dit voorbeeld wordt een verzameling losgekoppelde objecten en een losgekoppeld SalesOrderHeaderSalesOrderDetail object gekoppeld aan een objectcontext en worden vervolgens de relaties tussen het SalesOrderHeader object en elk SalesOrderDetail object gedefinieerd.

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

Opmerkingen

De Attach methode wordt gebruikt om relaties tussen twee objecten te definiëren wanneer beide objecten al bestaan in de objectcontext. Als u een object of een objectgrafiek wilt koppelen waarbij de relaties al zijn gedefinieerd, roept u de Attach methode aan op de ObjectContext. Als u een nieuw object wilt maken dat is gerelateerd aan het bronobject, roept u de Add methode op de EntityCollection<TEntity>. Zie Objecten koppelen en loskoppelen voor meer informatie.

Als de EntityCollection<TEntity> objecten al zijn geladen, voegt de Attach methode het object samen met de bestaande objecten in de EntityCollection<TEntity>.

Het gekoppelde object wordt niet verondersteld de volledige set gerelateerde entiteitsobjecten te zijn.

Het object dat aan dit EntityCollection<TEntity> object is gekoppeld en alle objecten die eraan worden gekoppeld, moeten een Unchanged of Modified status hebben.

Objecten met de Deleted status kunnen alleen worden gekoppeld wanneer het ObjectStateManager relatie-exemplaar al wordt bijgehouden.

Van toepassing op