ObjectContext.Detach(Object) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 le entity fichier est supprimé ; s’il existe des objets connexes qui sont suivis par le même ObjectStateManager, ceux-ci ne seront pas détachés automatiquement.
Exceptions
entity a la valeur null.
L’objet entity n’est pas associé à ce ObjectContext paramètre (par exemple, a été créé et n’a pas encore été associé à un contexte, ou a été obtenu par le biais d’un autre contexte ou a déjà été détaché).
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 du ObjectStateManager. Cela désactive le suivi des modifications et la résolution d’identité pour cet objet.
Une fois la Detach méthode appelée, le système ne conserve plus les références qui pointent vers cet objet et peuvent être collectées par le garbage collector.
Note
Le garbage collection ne peut se produire que si le code utilisateur n’a aucune référence à l’objet détaché.
Les considérations suivantes s’appliquent lors du détachement d’objets :
Detach affecte uniquement l’objet spécifique passé à la méthode. Si l’objet détaché a 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 de 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.