ObjectContext.Detach(Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Quita el objeto del contexto del objeto.
public:
void Detach(System::Object ^ entity);
public void Detach(object entity);
member this.Detach : obj -> unit
Public Sub Detach (entity As Object)
Parámetros
- entity
- Object
Objeto que se va a desasociar. Solo se quita el entity objeto ; si hay objetos relacionados a los que realiza el seguimiento el mismo ObjectStateManager, estos no se desasociarán automáticamente.
Excepciones
El entity es null.
no entity está asociado a esto ObjectContext (por ejemplo, se creó recientemente y no se ha asociado con ningún contexto aún, o se obtuvo a través de algún otro contexto o ya se desasociado).
Ejemplos
// 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());
}
}
Comentarios
Quita el objeto de .ObjectStateManager Esto deshabilita el seguimiento de cambios y la resolución de identidades de ese objeto.
Después de llamar al Detach método , el sistema ya no mantendrá las referencias que apuntan a este objeto y el recolector de elementos no utilizados puede recopilarlo.
Nota:
La recolección de elementos no utilizados solo puede producirse si el código de usuario no tiene referencias al objeto desasociado.
Se aplican las siguientes consideraciones al desasociar objetos:
Detach solo afecta al objeto específico que se pasa al método . Si el objeto que se desasocia tiene objetos relacionados en el contexto del objeto, esos objetos no se desasocian.
La desasociación de objetos no afecta a los datos del origen de datos.
Las directivas de eliminación en cascada y las restricciones referenciales no se aplican durante una operación de desasociación.