Объект с таким же ключом уже существует в 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<T>(entity);
if (entry.State == EntityState.Detached)
{
_context.Set<T>().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, он рвет с ошибкой:
An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key.
Я просмотрел многие предложения в стеке и в Интернете, и не придумал ничего, что решило бы это. Любые обходные пути будут оценены.
Спасибо!