ObjectContext.Detach(Object) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Remove o objeto do contexto do 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
Objeção a ser destacada. Apenas o entity é removido; se houver objetos relacionados que estejam a ser seguidos pelo ObjectStateManagermesmo , esses não serão separados automaticamente.
Exceções
O entity é null.
O entity não está associado a isto ObjectContext (por exemplo, foi criado recentemente e ainda não está associado a nenhum contexto, ou foi obtido através de outro contexto, ou já estava desligado).
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());
}
}
Observações
Remove o objeto do ObjectStateManager. Isto desativa o rastreio de alterações e a resolução de identidade desse objeto. Para obter mais informações, consulte Anexando e desanexando objetos.
Depois de o Detach método ser chamado, o sistema deixará de manter referências que apontem para este objeto e este pode ser recolhido pelo coletor de lixo.
Note
A recolha de lixo só pode ocorrer se o código do utilizador não tiver quaisquer referências ao objeto destacado.
As seguintes considerações aplicam-se ao destacar objetos:
Detach afeta apenas o objeto específico que é passado ao método. Se o objeto a ser separado tiver objetos relacionados no contexto do objeto, esses objetos não estão separados.
A separação de objetos não afeta os dados na fonte de dados.
Diretivas de eliminação em cascata e restrições referenciais não são aplicadas durante uma operação de desligamento.
Para obter mais informações, consulte Anexando e desanexando objetos.