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 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 entity
null
hodnota .
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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro