동시에 예외에는 엔티티 프레임 워크
-
21-12-2019 - |
문제
를 호출할 때 SaveChanges
/ SaveChangesAsync
에는 엔티티 프레임 워크(CF C#),경우에는 변경을 충돌이 발생합니다(예를 들어,값을 업데이트되었습니다 때문에 마지막으로 읽 thingy),그 다음에는 이러한 두 가지 예외가 DbUpdateConcurrencyException
나 OptimisticConcurrencyException
내가 있을까요?
고 무엇이 그들 사이의 차이점은?
해결책
DbUpdateConcurrencyException
은 특정에 의해 발생한 예외 DbContext
, 그래서 이것이 하나를 잡을 수 있습니다.이 예외로 인해 발생할 수 있습니다 기본 OptimisticConcurrencyException
, 하지만 그렇다면,이 예외는 포장으로 내부 예외는 아니다.
하지 않는 모든 업데이트 예외가 발생하여 동시성,그래서 당신은 또한 당신이 잡을 수 DbUpdateException
후에 잡기 DbUpdateConcurrencyException
(기 때문에 후자의 특수형 DbUpdateException
).
다른 팁
을 얻을 것이다 OptimisticConcurrencyException
.보 이.
이제 믿음.
- OptimisticConcurrencyException:을 때 발생 낙관적 동시 접속 위반이 발생(가정 하나 이상의 perople 변경 같은 결과,그리고 이 문제가 발생되지 않 sychronized)
- DbUpdateConcurrencyException:에 의해 발생한 예외 DbContext 을 때 예상되는 동작입니다 문제를 재현한 존재 결과를 데이터베이스의 업데이트 하지만 사실은 행 데이터베이스에서 영향을 받았다.이는 데이터베이스가 동시에 업데이트 및 concurrency 토큰을 것으로 예상과 일치하지 않았다 실제로 일치합니다.국가 항목을 참조하는 이 예외는 직렬화하지 않으로 인해 보안의 액세스 및 상태를 항목을 한 후 직렬화는 null 을 반환합니다.
제휴하지 않습니다 StackOverflow