Partager via


ObjectContext.Detach(Object) Méthode

Définition

Supprime l'objet du contexte de l'objet.

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

Paramètres

entity
Object

Objet à détacher. Seul entity est supprimé ; si des objets connexes sont suivis par le même ObjectStateManager, ceux-ci ne seront pas détachés automatiquement.

Exceptions

entity a la valeur null.

L'entity n'est pas associée à ce ObjectContext (par exemple, elle a été créée récemment et n'a encore été associée à un contexte ou elle a été obtenue par le biais d'un autre contexte ou elle a déjà été détachée).

Exemples

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

Remarques

Supprime l'objet de l'objet ObjectStateManager. Cela désactive le suivi des modifications et la résolution d’identité pour cet objet. Pour plus d’informations, consultez Attachement et détachement d’objets.

Après l'appel de la méthode Detach, le système ne conserve plus de références qui pointent vers cet objet et il peut être recueilli par le garbage collector.

Notes

Le garbage collection peut se produire uniquement si le code utilisateur ne contient aucune référence à l’objet détaché.

Vous devez tenir compte des points suivants lors du détachement d'objets :

  • Detach affecte uniquement l'objet spécifique passé à la méthode. Si l'objet qui est détaché possède des objets connexes dans le contexte de l'objet, ces objets ne sont pas détachés.

  • Le détachement d'objets n'affecte pas les données contenues dans la source de données.

  • Les directives de suppression en cascade et les contraintes référentielles ne sont pas appliquées pendant une opération de détachement.

Pour plus d’informations, consultez Attachement et détachement d’objets.

S’applique à

Voir aussi