Объект с таким же ключом уже существует в ObjectStateManager. ObjectStateManager не может отслеживать несколько объектов с одним и тем же ключом

Использование EF5 с общим шаблоном репозитория и ninject для ограничения зависимостей и возникновение проблемы при попытке обновить сущность в базе данных, используя хранимые процессы с моим edmx.

мое обновление в DbContextRepository.cs:

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

    var entry = _context.Entry(entity);

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

Из моего AddressService.cs, который восходит к моему хранилищу, я имею:

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

    _repo.SaveChanges();

    return address.address_pk;
}

Когда он нажимает Attach и EntityState.Modified, он рвет с ошибкой:

Объект с таким же ключом уже существует в ObjectStateManager. ObjectStateManager не может отслеживать несколько объектов с одним и тем же ключом.

Я просмотрел многие предложения в стеке и в Интернете, и не придумал ничего, что решило бы это. Любые обходные пути будут оценены.

Спасибо!

Ответы на вопрос(10)

Ваш ответ на вопрос