É possível verificar se um objeto já está conectado a um contexto de dados no Entity Framework?
Estou recebendo o seguinte erro ao tentar anexar um objeto que já está anexado a um determinado contexto por meio decontext.AttachTo(...)
:
Um objeto com a mesma chave já existe no ObjectStateManager. O ObjectStateManager não pode rastrear vários objetos com a mesma chave.
Existe uma maneira de conseguir algo nos moldes de:
context.IsAttachedTo(...)
Felicidades!
Editar:
O método de extensão que Jason descreveu está próximo, mas não funciona para minha situação.
Eu estou tentando fazer algum trabalho usando o método descrito na resposta a outra pergunta:
Meu código parece um pouco com isso:
var user = new User() { Id = 1 };
context.AttachTo("Users", user);
comment.User = user;
context.SaveChanges();
Isso funciona bem, exceto quando eu faço outra coisa para esse usuário, onde eu uso o mesmo método e tento anexar um manequimUser
objeto. Isso falha porque eu já anexei esse objeto de usuário fictício. Como posso verificar isso?