Jak odłączyć encję od kontekstu w Entity Framework?
Używam EF 4.1 z Repozytorium i DbContext .. POCO z szablonem T4. Dla każdego repozytorium używam osobnego DbContext.
Muszę zaktualizować obiekt o powiązaną właściwość, w chwili, gdy otrzymuję ten błąd
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
Przypuszczam, że mój problem jest takieventObj
icandidate
są tworzone z różnych repozytoriów.
Próbuję rozwiązać problem za pomocą tego kodu, bez powodzenia.
Moje pytanie?
Jak pozbyć się tego błędu?Czy możliwe jest usunięcie kandydata z kontekstu?
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;
}
EDYTOWAĆ
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;
}