Sdílet prostřednictvím


EntityCollection<TEntity>.Attach Metoda

Definice

Definuje vztah mezi dvěma připojenými objekty v kontextu objektu.

Přetížení

Attach(IEnumerable<TEntity>)

Definuje vztahy mezi objektem a kolekcí souvisejících objektů v kontextu objektu.

Attach(TEntity)

Definuje vztah mezi dvěma připojenými objekty v kontextu objektu.

Attach(IEnumerable<TEntity>)

Definuje vztahy mezi objektem a kolekcí souvisejících objektů v kontextu objektu.

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

Parametry

entities
IEnumerable<TEntity>

Kolekce objektů v kontextu objektu, které souvisejí se zdrojovým objektem.

Výjimky

entities kolekce je null.

Zdrojový objekt nebo objekt v kolekci entities je null nebo není ve Unchanged stavu nebo Modified .

-nebo-

Vztah nelze definovat na základě metadat EDM. K tomu může dojít v případě, že přidružení v koncepčním schématu nepodporuje vztah mezi těmito dvěma typy.

Poznámky

Metoda Attach se používá k definování vztahů mezi objektem a kolekcí souvisejících objektů, pokud zdrojový objekt i kolekce souvisejících objektů již existují v kontextu objektu. Pokud chcete připojit objekt nebo graf objektů, ve kterém jsou relace již definované, zavolejte metodu Attach na ObjectContext. Chcete-li vytvořit nový objekt, který souvisí se zdrojovým objektem, zavolejte metodu Add na EntityCollection<TEntity>. Další informace najdete v tématu Připojení a odpojení objektů.

Pokud je kolekce již vyplněná nebo částečně vyplněná, Attach metoda sloučí existující entity s danými entitami. Dané entity se nepředpokládají jako úplná sada souvisejících entit.

Všechny předané entity musí být ve Unchanged stavu nebo Modified . Objekty ve stavu jsou povoleny pouze v Deleted případě, že správce stavu již sleduje instanci relace.

Platí pro

Attach(TEntity)

Definuje vztah mezi dvěma připojenými objekty v kontextu objektu.

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

Parametry

entity
TEntity

Připojený objekt.

Výjimky

Když je entitynull.

Když objekt entity nemůže být spojen se zdrojovým objektem. K tomu může dojít v případě, že přidružení v koncepčním schématu nepodporuje vztah mezi těmito dvěma typy.

-nebo-

Pokud je nebo není objekt null ve stavu nebo UnchangedModified .

Příklady

Tento příklad je založený na prodejním modelu Adventure Works. Chcete-li spustit kód v tomto příkladu, musíte již přidat AdventureWorks Sales Model do projektu a nakonfigurovat projekt tak, aby používal Entity Framework. Provedete to provedením postupů v tématu Postupy: Ruční konfigurace projektu Entity Framework a Postupy: Ruční definování modelu a souborů mapování.

Tento příklad připojí kolekci odpojených SalesOrderDetail objektů a odpojený SalesOrderHeader objekt ke kontextu objektu a pak definuje vztahy mezi objektem SalesOrderHeader a každým SalesOrderDetail objektem.

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

Poznámky

Metoda Attach se používá k definování vztahů mezi dvěma objekty, pokud oba objekty již existují v kontextu objektu. Pokud chcete připojit objekt nebo graf objektů, ve kterém jsou relace již definované, zavolejte metodu Attach na ObjectContext. Chcete-li vytvořit nový objekt, který souvisí se zdrojovým objektem, zavolejte metodu Add na EntityCollection<TEntity>. Další informace najdete v tématu Připojení a odpojení objektů.

EntityCollection<TEntity> Pokud objekt již má načtené objekty, Attach metoda sloučí objekt společně s existujícími objekty v objektu EntityCollection<TEntity>.

U připojeného objektu se nepředpokládá, že je úplnou sadou objektů souvisejících entit.

Objekt přidružený k tomuto EntityCollection<TEntity> objektu a všechny objekty, které jsou k němu připojeny, musí být ve Unchanged stavu nebo Modified .

Objekty ve Deleted stavu lze připojit pouze v případě, že ObjectStateManager objekt již sleduje instanci relace.

Platí pro