EntityCollection<TEntity>.Attach Metoda

Definice

Definuje relaci 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 relaci 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-

Relaci 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 již definované relace, 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. U daných entit se nepředpokládá, že jsou úplnou sadou souvisejících entit.

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

Platí pro

Attach(TEntity)

Definuje relaci 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

Objekt, který se připojuje.

Výjimky

Když je entitynullhodnota .

Pokud 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 objekt je null nebo není ve Unchanged stavu nebo Modified .

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 tak, že dokončíte postupy v části Postupy: Ruční konfigurace projektu Entity Framework a Postupy: Ruční definování souborů modelu a 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 jednotlivými SalesOrderDetail objekty.

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 již definované relace, 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 již 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 kompletní sada 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