EntityCollection<TEntity>.Attach Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 entity
null
.
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.