Ein Objekt mit demselben Schlüssel ist bereits vorhanden in der ObjectStateManager. Der ObjectStateManager nicht verfolgen können, mehrere Objekte mit dem gleichen Schlüssel

Mit EF5 mit ein generic Repository Pattern und ninject für die Abhängigkeit injenction und läuft in ein Problem, wenn Sie versuchen, das update einer entity auf die Datenbank unter Verwendung von gespeicherten Prozeduren mit meiner edmx.

mein update in DbContextRepository.cs:

public override void Update(T entity)
{
    if (entity == null)
        throw new ArgumentException("Cannot add a null entity.");

    var entry = _context.Entry<T>(entity);

    if (entry.State == EntityState.Detached)
    {
        _context.Set<T>().Attach(entity);
        entry.State = EntityState.Modified;
    }
}

Aus meiner AddressService.cs, das geht zurück zu meinem repository habe ich:

 public int Save(vw_address address)
{
    if (address.address_pk == 0)
    {
        _repo.Insert(address);
    }
    else
    {
        _repo.Update(address);
    }

    _repo.SaveChanges();

    return address.address_pk;
}

Wenn es Sie trifft, das Anhängen und EntityState.Verändert es kotzt mit der Fehlermeldung:

Ein Objekt mit demselben Schlüssel ist bereits vorhanden in der ObjectStateManager. Der ObjectStateManager nicht verfolgen können, mehrere Objekte mit dem gleichen Schlüssel.

Habe ich mich durch viele der Vorschläge im stack und im Internet und kommen nicht mit etwas, behebt es. Jede Arbeit, Tips und Tricks wären sehr willkommen.

Dank!

InformationsquelleAutor der Frage Juan | 2012-09-25

Schreibe einen Kommentar