Freigeben über


ObjectContext.Detach(Object) Methode

Definition

Entfernt das Objekt aus dem Objektkontext.

public:
 void Detach(System::Object ^ entity);
public void Detach (object entity);
member this.Detach : obj -> unit
Public Sub Detach (entity As Object)

Parameter

entity
Object

Zu trennendes Objekt. Es wird nur die entity entfernt. Wenn verknüpfte Objekte vorhanden sind, die von demselben ObjectStateManager nachverfolgt werden, werden diese nicht automatisch getrennt.

Ausnahmen

entity ist null.

Die entity ist diesem ObjectContext nicht zugeordnet (Beispiel: sie wurde neu erstellt und noch keinem Kontext zugeordnet, sie wurde durch einen anderen Kontext abgerufen oder sie wurde bereits getrennt).

Beispiele

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

Hinweise

Entfernt das Objekt aus dem ObjectStateManager. Dadurch werden Änderungsnachverfolgung und Identitätsauflösung für dieses Objekt deaktiviert. Weitere Informationen finden Sie unter Anfügen und Trennen von Objekten.

Nach dem Aufruf der Detach-Methode werden vom System alle Verweise auf dieses Objekt gelöscht und es kann vom Garbage Collector gesammelt werden.

Hinweis

Die Garbage Collection (automatische Speicherbereinigung) kann nur erfolgen, wenn der Benutzercode keine Verweise auf das getrennte Objekt enthält.

Folgendes gilt beim Trennen von Objekten:

  • Detach betrifft nur das jeweilige Objekt, das an die Methode übergeben wird. Wenn das zu trennende Objekt über verbundene Objekte im Objektkontext verfügt, werden diese Objekte nicht getrennt.

  • Das Trennen von Objekten wirkt sich nicht auf Daten in der Datenquelle aus.

  • Während eines Trennvorgangs werden keine Anweisungen zur kaskadierten Löschung oder referenziellen Einschränkungen erzwungen.

Weitere Informationen finden Sie unter Anfügen und Trennen von Objekten.

Gilt für:

Weitere Informationen