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. Para más información, consulte Adjuntar y desasociar objetos.
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.
Note
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.
Para más información, consulte Adjuntar y desasociar objetos.