Как отменить присоединение объекта из контекста в Entity Framework?
Я использую EF 4.1 с репозиторием и DbContext .. POCO с шаблоном T4. Для каждого репозитория я использую отдельный DbContext.
Мне нужно обновить объект, имеющий связанное свойство, в данный момент я получаю эту ошибку
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
Я полагаю, что моя проблема из-заeventObj
а такжеcandidate
создаются из разных репозиториев.
Поэтому я пытаюсь решить проблему с этим кодом, но безуспешно.
Мой вопрос?
How do I get rid of this error?Is is possible remove the candidate from its context?
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;
}
РЕДАКТИРОВАТЬ
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;
}