Wie de-befestigen Sie ein Objekt aus einem Kontext, in Entity Framework?

Verwende ich das EF 4.1 mit dem Repository und DbContext.. POCO mit T4-Vorlage.
Für jedes Repository verwende ich eine separate DbContext.

Ich aktualisieren ein Objekt mit einer Eigenschaft, im moment habe ich diese Fehlermeldung erhalten

An entity object cannot be referenced by multiple instances of IEntityChangeTracker.

Ich nehme an, mein problem ist, beacuse eventObj und candidate erstellt werden, aus verschiedenen Repositories.

So, ich bin versucht zu lösen das problem mit diesem code, aber ohne Erfolg.

Meine Frage?

  • Wie bekomme ich diesen Fehler loszuwerden?
  • Ist möglich, entfernen Sie die Kandidaten aus Ihrem Kontext?

    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;     
    }

BEARBEITEN

    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;

    }
  • Warum erstellen Sie neue Instanzen der Ereignis-und der Kandidat? Ich denke, dass sollte man nicht.
InformationsquelleAutor GibboK | 2012-10-10
Schreibe einen Kommentar