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
Objekt, das getrennt werden soll. Nur die entity wird entfernt. Wenn es verwandte Objekte gibt, die von demselben ObjectStateManagernachverfolgt werden, werden diese nicht automatisch getrennt.
Ausnahmen
entity ist null.
Dies entityObjectContext ist nicht zugeordnet (z. B. neu erstellt und noch nicht mit einem Kontext verknüpft oder wurde über einen anderen Kontext abgerufen oder 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 wird die Änderungsnachverfolgung und die Identitätsauflösung für dieses Objekt deaktiviert.
Nachdem die Detach Methode aufgerufen wurde, behält das System keine Verweise mehr auf dieses Objekt bei und kann vom Garbage Collector erfasst werden.
Hinweis
Garbage collection can only occur if the user code does not have any references to the detached object.
Die folgenden Überlegungen gelten beim Trennen von Objekten:
Detach wirkt sich nur auf das spezifische Objekt aus, das an die Methode übergeben wird. Wenn das objekt, das getrennt wird, verwandte Objekte im Objektkontext aufweist, werden diese Objekte nicht getrennt.
Das Trennen von Objekten wirkt sich nicht auf Daten in der Datenquelle aus.
Löschdirektiven und referenzielle Einschränkungen werden während eines Abtrennvorgangs nicht erzwungen.