EF 동시성 처리와 타임스탬프 특성 모델을 먼저 접근법
-
12-12-2019 - |
문제
나를 구현하기 위해 노력하고의 솔루션에 주어진 동시성 처리와 엔티티 프레임워크는 ASP.NET MVC 응용 프로그램 .
는 문서를 말한다:
를 추가하는 추적성부는 엔티티
모델\부가 있습니다.cs 추가하는 추적성:
[Timestamp] public Byte[] Timestamp { get; set; }
타임 스탬프 속성을 지정하는 이 열에 포함됩니다 Where 의 업데이트 및 삭제 명령을 전송하여 데이터베이스입니다.
이후 나는 사용 모델 첫째 접근,내가 다음 단계 1-5 에서 설명 을 만드는 타임 스탬프 열 Entity Framework
- 추가라는 속성이"Timestamp"을 entity EF 의 모델
- 유형을 설정하는 바이너리
- 설정 널 false
- 설정 StoreGeneratedPattern 계산
- 트 고정 ConcurrencyMode
할 때 업데이트 코드에서는 데이터베이스 모델을 모델\부가 있습니다.cs 포함
public virtual byte[] Timestamp
{
get;
set;
}
그리고 내가 사용하는 메타데이터 클래스를 지정한 타임스탬프 속성:
// Metadata for Department entity
public class DepartmentMetadata
{
[Timestamp]
public byte Timestamp { get; set; }
}
Q1. 나는지 여부를 테스트의 가치 Timestamp
열 변경하는 경우의 행정을 수정합니다.그것은 아닙니다.
편집 1 문제가 발생하기 때문에 SQL Server 열 유형 binary
,그것은 어디 있었어야의 유형 timestamp
.데이터 형식을 변경하면 문제를 해결의 열 못하고 업데이트됩니다.
Q2. 었을 수정하려고 하는 같은 엔터티를 사용하여(""새 탭에서 열기)하는 경우를 참조하십시오 OptimisticConcurrencyException
가 발생합니다.그것은 아닙니다.무엇이 잘못된 것입니까?시기 바랍 이해하는 데 도움이 되는,감사합니다.
해결책
문제가 발생했기 때문에 하나 ObjectContext 당 HTTP 세션,그래서 새 탭을 열고 그것을 테스트하는 것 지 원인이 동시 예외는 아니다.
제휴하지 않습니다 StackOverflow