Sdílet prostřednictvím


ObjectContext.Detach(Object) Metoda

Definice

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ů.

Platí pro

Viz také