ObjectContext.Detach(Object) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla