У меня есть объект, который не связан с моим dbcontext. Я хочу изменить это. Однако к dbcontext уже прикреплен другой экземпляр того же объекта. Если я просто добавлю свою новую сущность, я получаю ошибку, что существо с одинаковым первичным ключом уже прикреплена.
я попробовал несколько разных вариантов удаления старого объекта от dbcontext без каких-либо успехов. Как я могу заменить старый экземпляр новым?
Примечание. Я не хочу копировать значения, я хочу прикрепить этот самый экземпляр моего нового объекта на dbcontext.
var entity = new MyEntity { Id = 1 };
var logicalDuplicate = dbcontext.Set<MyEntity >().Local
.FirstOrDefault(e => e.Equals(entity));
if (logicalDuplicate != null)
{
// remove logicalDuplicate from dbcontext
}
dbcontext.MyEntity.Attach(entity);
Для пояснения: я переопределил Equals, чтобы проверить на Id вместо ссылки.
dbcontext.Refresh(RefreshMode.ClientWins, entity)- person Florian Haider   schedule 02.06.2016((IObjectContextAdapter)dbcontext).ObjectContext. - person Florian Haider   schedule 02.06.2016((IObjectContextAdapter)dbcontext).ObjectContext.Detach(logicalDuplicate). Тогда присоединение должно работать в любом случае. - person Florian Haider   schedule 02.06.2016ObjectContext->ObjectStateManager->GetRelationshipManager()и пройти через связанные цели, не уверены в том, что, как я не пробовал сам. - person Florian Haider   schedule 06.06.2016