나는 이와 같은 리포지토리 프로젝트를 가지고 있습니다.Entity Framework 업데이트 DbContext
https://github.com/tugberkugurlu/GenericRepository/tree/master/src
내가하는 방법이있다.
public void Edit(TEntity entity)
{
_dbContext.SetAsModified(entity);
}
public void SetAsAdded<TEntity>(TEntity entity) where TEntity : class
{
DbEntityEntry dbEntityEntry = GetDbEntityEntrySafely(entity);
dbEntityEntry.State = EntityState.Added;
}
그러나 업데이트 기록 중에 있습니다. 이 오류가 발생하는 경우가 있습니다. 동일한 유형의 다른 엔티티가 이미 동일한 기본 키 값을 가지고 있기 때문에 유형의 엔티티 'TP.Model'를 부착
는실패했습니다. 이는 'Attach'방법을 사용하거나 그래프의 엔티티 중 임의의 키 값이 충돌하는 경우 엔티티의 상태를 '변경되지 않음'또는 '수정'으로 설정할 때 발생할 수 있습니다. 일부 엔터티 이 새 것이므로 아직 데이터베이스 생성 키 값을받지 못했기 때문일 수 있습니다. 이 경우 '추가'메소드 또는 '추가됨'엔티티 상태를 사용하여 그래프를 으로 추적 한 다음 비 신규 엔티티의 상태를 '변경되지 않음'또는 '수정 됨'으로 적절히 설정하십시오.
본 적이 있습니까? https://stackoverflow.com/questions/23201907/asp-net-mvc-attaching-anentity-of-type-modelname-failed-because-otherotherent –
나는 계속 읽고 있지만 이해할 수는 없다. 문제가있다. – caras
컨텍스트 dbset'Local' 컬렉션을 디버깅하십시오 ... 이미 ID가있는 엔티티가 있으면 코드가 실패 할 수 있습니다. 그러나 코드를 충분히 보여주지 못했기 때문에 문제가 무엇인지 확신 할 수 있습니다. – grek40