ObjectContext.Detach(Object) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rimuove l'oggetto dal contesto dell'oggetto.
public:
void Detach(System::Object ^ entity);
public void Detach(object entity);
member this.Detach : obj -> unit
Public Sub Detach (entity As Object)
Parametri
- entity
- Object
Oggetto da scollegare.
entity Viene rimosso solo . Se sono presenti oggetti correlati rilevati dallo stesso ObjectStateManageroggetto , tali oggetti non verranno scollegati automaticamente.
Eccezioni
Il entity è null.
L'oggetto entity non è associato a questo ObjectContext oggetto ( ad esempio, è stato appena creato e non associato ad alcun contesto oppure è stato ottenuto tramite un altro contesto o è già stato scollegato).
Esempio
// 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());
}
}
Commenti
Rimuove l'oggetto da ObjectStateManager. In questo modo viene disabilitato il rilevamento delle modifiche e la risoluzione delle identità per tale oggetto.
Dopo aver chiamato il Detach metodo, il sistema non manterrà più riferimenti che puntano a questo oggetto e potrà essere raccolto dal Garbage Collector.
Annotazioni
Il Garbage Collection può verificarsi solo se il codice utente non dispone di riferimenti all'oggetto scollegato.
Quando si scollegano oggetti, si applicano le considerazioni seguenti:
Detach influisce solo sull'oggetto specifico passato al metodo . Se l'oggetto scollegato ha oggetti correlati nel contesto dell'oggetto, tali oggetti non vengono scollegati.
Lo scollegamento degli oggetti non influisce sui dati nell'origine dati.
Le direttive delete a catena e i vincoli referenziale non vengono applicati durante un'operazione di scollegamento.