ObjectContext.Detach(Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.