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 pouze; entity pokud existují nějaké související objekty, které jsou sledovány stejnými ObjectStateManager, ty nebudou odpojeny automaticky.
Výjimky
To entity je null.
K entity tomuto ObjectContext objektu není přidružen (například byl nově vytvořen a ještě není přidružen k žádnému kontextu nebo 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 zakáže sledování změn a řešení identity pro daný objekt.
Detach Po zavolání metody systém již nebude uchovávat odkazy, které odkazují na tento objekt a lze jej shromáždit uvolňováním paměti.
Poznámka:
Uvolňování paměti může dojít pouze v případě, že uživatelský kód nemá žádné odkazy na odpojený objekt.
Při odpojení objektů platí následující aspekty:
Detach má vliv pouze na konkrétní objekt, který je předán metodě. Pokud má odpojený objekt související objekty v kontextu objektu, tyto objekty nejsou odpojeny.
Odpojení objektů nemá vliv na data ve zdroji dat.
Kaskádové odstranění direktiv a referenční omezení se během operace odpojení nevynucují.