ObjectContext.Detach(Object) Metoda

Definicja

Usuwa obiekt z kontekstu obiektu.

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

Obiekt do odłączenia. Tylko element entity jest usuwany. Jeśli istnieją powiązane obiekty śledzone przez tę samą ObjectStateManagermetodę , nie zostaną one automatycznie odłączone.

Wyjątki

Wartość entity to null.

Element entity nie jest skojarzony z tym ObjectContext elementem (na przykład został nowo utworzony i nie został jeszcze skojarzony z żadnym kontekstem lub został uzyskany za pośrednictwem innego kontekstu lub został już odłączony).

Przykłady

// 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());
    }
}

Uwagi

Usuwa obiekt z obiektu ObjectStateManager. Spowoduje to wyłączenie śledzenia zmian i rozpoznawania tożsamości dla tego obiektu. Aby uzyskać więcej informacji, zobacz Dołączanie i odłączanie obiektów.

Po wywołaniu Detach metody system nie będzie już przechowywać odwołań wskazujących ten obiekt i może zostać zebrany przez moduł odśmiecający pamięci.

Uwaga

Odzyskiwanie pamięci może wystąpić tylko wtedy, gdy kod użytkownika nie ma żadnych odwołań do odłączonego obiektu.

Podczas odłączania obiektów mają zastosowanie następujące kwestie:

  • Detach Dotyczy tylko określonego obiektu, który jest przekazywany do metody. Jeśli odłączony obiekt ma powiązane obiekty w kontekście obiektu, te obiekty nie są odłączone.

  • Odłączanie obiektów nie wpływa na dane w źródle danych.

  • Dyrektywy usuwania kaskadowego i ograniczenia odwołań nie są wymuszane podczas operacji odłączenia.

Aby uzyskać więcej informacji, zobacz Dołączanie i odłączanie obiektów.

Dotyczy

Zobacz też