ObjectContext.Detach(Object) 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í.
Odebere objekt z kontextu objektu.
public:
void Detach(System::Object ^ entity);
public void Detach (object entity);
member this.Detach : obj -> unit
Public Sub Detach (entity As Object)
Parametry
- entity
- Object
Objekt, který se má odpojit. Odebere se entity
pouze objekt . Pokud existují nějaké související objekty, které jsou sledovány stejným ObjectStateManagerobjektem , nebudou automaticky odpojeny.
Výjimky
Hodnota entity
je null
.
Není entity
přidružen k tomuto ObjectContext (například byl nově vytvořen a ještě není přidružen k žádnému kontextu, byl získán prostřednictvím jiného kontextu nebo byl již odpojen).
Příklady
// This method is called to detach SalesOrderHeader objects and
// related SalesOrderDetail objects from the supplied object
// context when no longer needed by the application.
// Once detached, the resources can be garbage collected.
private static void DetachOrders(ObjectContext context,
SalesOrderHeader order)
{
try
{
// Detach each item from the collection.
while (order.SalesOrderDetails.Count > 0)
{
// Detach the first SalesOrderDetail in the collection.
context.Detach(order.SalesOrderDetails.First());
}
// Detach the order.
context.Detach(order);
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.ToString());
}
}
Poznámky
Odebere objekt z objektu ObjectStateManager. Tím se pro tento objekt zakáže sledování změn a překlad identity. Další informace najdete v tématu Připojení a odpojení objektů.
Po zavolání Detach metody už systém neuchová odkazy odkazy, které odkazují na tento objekt, a systém uvolňování paměti ho může shromáždit.
Poznámka
Uvolňování paměti může dojít pouze v případě, že uživatelský kód neobsahuje žádné odkazy na odpojený objekt.
Při odpojování objektů platí následující aspekty:
Detach ovlivňuje pouze konkrétní objekt, který je předán metodě . Pokud má odpojený objekt v kontextu objektu související objekty, nejsou tyto objekty odpojeny.
Odpojení objektů nemá vliv na data ve zdroji dat.
Během operace odpojení se nevynucují kaskádové direktivy odstranění a referenční omezení.
Další informace najdete v tématu Připojení a odpojení objektů.