문제

를 호출할 때 SaveChanges / SaveChangesAsync 에는 엔티티 프레임 워크(CF C#),경우에는 변경을 충돌이 발생합니다(예를 들어,값을 업데이트되었습니다 때문에 마지막으로 읽 thingy),그 다음에는 이러한 두 가지 예외가 DbUpdateConcurrencyExceptionOptimisticConcurrencyException 내가 있을까요?

고 무엇이 그들 사이의 차이점은?

도움이 되었습니까?

해결책

DbUpdateConcurrencyException 은 특정에 의해 발생한 예외 DbContext, 그래서 이것이 하나를 잡을 수 있습니다.이 예외로 인해 발생할 수 있습니다 기본 OptimisticConcurrencyException, 하지만 그렇다면,이 예외는 포장으로 내부 예외는 아니다.

하지 않는 모든 업데이트 예외가 발생하여 동시성,그래서 당신은 또한 당신이 잡을 수 DbUpdateException 후에 잡기 DbUpdateConcurrencyException (기 때문에 후자의 특수형 DbUpdateException).

또한 참조 엔티티 프레임 워크 5.0 핸들을 낙관적 인 동시성 제외?.

다른 팁

을 얻을 것이다 OptimisticConcurrencyException.보 .

이제 믿음.

  • OptimisticConcurrencyException:을 때 발생 낙관적 동시 접속 위반이 발생(가정 하나 이상의 perople 변경 같은 결과,그리고 이 문제가 발생되지 않 sychronized)
  • DbUpdateConcurrencyException:에 의해 발생한 예외 DbContext 을 때 예상되는 동작입니다 문제를 재현한 존재 결과를 데이터베이스의 업데이트 하지만 사실은 행 데이터베이스에서 영향을 받았다.이는 데이터베이스가 동시에 업데이트 및 concurrency 토큰을 것으로 예상과 일치하지 않았다 실제로 일치합니다.국가 항목을 참조하는 이 예외는 직렬화하지 않으로 인해 보안의 액세스 및 상태를 항목을 한 후 직렬화는 null 을 반환합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top