¿Cómo desasociar una entidad de un contexto en Entity Framework?
Uso EF 4.1 con Repository y DbContext .. POCO con plantilla T4. Para cada Repositorio utilizo un DbContext separado.
Necesito actualizar un objeto con una propiedad relacionada, en el momento en que recibo este error
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
Supongo que mi problema es porqueeventObj
ycandidate
Se crean desde diferentes repositorios.
Así que estoy tratando de resolver el problema con este código, sin éxito.
¿Mi pregunta?
¿Cómo me deshago de este error?¿Es posible sacar al candidato de su 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;
}