Como anexar uma entidade de um contexto no Entity Framework?
Eu uso o EF 4.1 com Repository e DbContext .. POCO com template T4. Para cada Repositório, eu uso um DbContext separado.
Preciso atualizar um objeto com uma propriedade relacionada, no momento recebo este erro
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
Eu suponho que meu problema é por causaeventObj
ecandidate
são criados a partir de Repositórios diferentes.
Então, eu estou tentando resolver o problema com este código, sem sucesso.
Minha pergunta?
Como me livrar desse erro?É possível remover o candidato do seu contexto?
public void UpdateAddingCandidate(Event eventObj, Candidate candidate){
Event updatedEvent = new Event();
Candidate updatedCandidate = new Candidate();
updatedEvent = eventObj;
updatedCandidate = candidate;
updatedEvent.Candidate = updatedCandidate;
db.Entry(updatedEvent).State = EntityState.Modified;
}
EDITAR
public void UpdateAddingCandidate(Event eventObj, Candidate candidate)
{
/*
db.Events.AsNoTracking();
db.Candidates.AsNoTracking();
*/
db.Entry(eventObj).State = EntityState.Detached;
db.Entry(candidate).State = EntityState.Detached;
Event updatedEvent = new Event();
Candidate updatedCandidate = new Candidate();
updatedEvent = eventObj;
updatedCandidate = candidate;
updatedEvent.Candidate = updatedCandidate;
db.Entry(updatedEvent).State = EntityState.Detached;
db.Entry(updatedEvent).State = EntityState.Modified;
}