Obiekt z tym samym kluczem już istnieje w ObjectStateManager. ObjectStateManager nie może śledzić wielu obiektów za pomocą tego samego klucza

Używanie EF5 z ogólnym wzorem repozytorium i ninject w celu wprowadzenia zależności i uruchomienia problemu podczas próby aktualizacji obiektu do bazy danych przy użyciu przechowywanych proc z moim edmx.

moja aktualizacja w DbContextRepository.cs to:

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

Z mojego AddressService.cs, który wraca do mojego repozytorium, mam:

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

    _repo.SaveChanges();

    return address.address_pk;
}

Kiedy uderza w Attach and EntityState.Modified to wymiotuje z błędem:

Obiekt z tym samym kluczem już istnieje w ObjectStateManager. ObjectStateManager nie może śledzić wielu obiektów za pomocą tego samego klucza.

Przejrzałem wiele sugestii w stosie iw Internecie i nie wymyśliłem niczego, co by go rozwiązało. Wszelkie prace będą mile widziane.

Dzięki!

questionAnswers(10)

yourAnswerToTheQuestion