Entity Framework

16/03/2011

0

Olá, pessoal.

Estou tendo alguns problemas em um projeto com Entity Framework. Ele está divido assim:
- Entidades do próprio EF
- Classe Context, responsável pela administração das entidades
- Classe BusinessObject abstrata, que serve de base para as demais classes de negócio
- Classes de negócio

Não vou dar tantos detalhes assim porque os erros (exceções) estão surgindo ao longo do desenvolvimento, ou seja, não são em locais específicos.

Alguém sabe me dizer por que os erros abaixo acontecem?

[1] A instância de ObjectContext foi descartada e não pode mais ser usada para operações que exijam uma conexão.
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.

[2] Um objeto de entidade não pode ser referenciado por várias instâncias de IEntityChangeTracker.
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.

[3] Não foi possível definir a relação entre os dois objetos porque eles estão anexados a diferentes objetos ObjectContext.
The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects.

Gostaria de soluções gerais para esses problemas. Já pesquisei em diversos sites (MSDN, Code Project, fóruns, etc.), mas não encontrei muita coisa que pudesse ajudar.

Grato desde já.
Orlando Jr.

Orlando Jr.

Responder

Post mais votado

24/07/2016

Tô passando pelo mesmo problema 2: [2] Um objeto de entidade não pode ser referenciado por várias instâncias de IEntityChangeTracker.
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.

Alguém sabe a causa e a soução?

Maico

Maico
Responder

Mais Posts

18/03/2011

Leandro Leandro

Caro Orlando,
Para os erros 1 e 3 , já aconteceu algo do tipo para mim, não foi o mesmo erro, mas parecido.

Tentou usar algo do tipo assim:
Usando o context como está abaixo, o dispose é chamado automáticamente quando fecha a chaves " } ", e quando vc está usando entre as chaves não há perigo para acontecer um dispose

Para o erro 1
 using (ObjectContext objectContext = new ObjectContext()){  aqui fica o código para tratar os dados... 
}
E para o erro 3, pode ser por causa está usando 2 objectContext e somente está definindo um.e pode usar assim:
      using (ObjectContext objectContext = new ObjectContext())                {               using (ObjectContext objectContext2 = new ObjectContext())                    {                ........ aqui pode tratar para os 2 context...     }

Espero ter ajudado...
Leandro
Responder

22/03/2011

Orlando Jr.

Oi, Leandro.

Obrigado pela ajuda. Percebi que é isso mesmo o que você disse, mas os erros continuam por causa da estrutura que está a arquitetura da aplicação.

Saberia me indicar alguma boa estrutura para arquitetura com EF (digo, algum exemplo já pronto, com código, etc.)?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar