ObjectContext.Detach(Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Remove o objeto de contexto de 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
O objeto a ser desanexado. Somente o entity
é removido; se houver objetos relacionados que estão sendo acompanhados pelo mesmo ObjectStateManager, eles não serão desanexados automaticamente.
Exceções
O entity
é null
.
O entity
não está associado a este ObjectContext (por exemplo, foi criado recentemente e não foi associado a nenhum contexto, foi obtido por meio de algum outro contexto ou já foi desanexado).
Exemplos
// 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());
}
}
Comentários
Remove o objeto do ObjectStateManager. Isso desabilita o controle de alterações e a resolução de identidade para esse objeto. Para obter mais informações, consulte Anexar e desanexar objetos.
Depois que o Detach método for chamado, o sistema não manterá mais as referências que apontam para esse objeto e ele poderá ser coletado pelo coletor de lixo.
Observação
A coleta de lixo só poderá ocorrer se o código do usuário não tiver referências ao objeto desanexado.
As seguintes considerações se aplicam ao desanexar objetos:
Detach afeta apenas o objeto específico que é passado para o método . Se o objeto que está sendo desanexado tiver objetos relacionados no contexto do objeto, esses objetos não serão desanexados.
Desanexar objetos não afeta os dados na fonte de dados.
Diretivas de exclusão em cascata e restrições referenciais não são impostas durante uma operação de desanexação.
Para obter mais informações, consulte Anexar e desanexar objetos.