문제

나를 구현하기 위해 노력하고의 솔루션에 주어진 동시성 처리와 엔티티 프레임워크는 ASP.NET MVC 응용 프로그램 .

는 문서를 말한다:

를 추가하는 추적성부는 엔티티

모델\부가 있습니다.cs 추가하는 추적성:

[Timestamp] 
public Byte[] Timestamp { get; set; }

타임 스탬프 속성을 지정하는 이 열에 포함됩니다 Where 의 업데이트 및 삭제 명령을 전송하여 데이터베이스입니다.

이후 나는 사용 모델 첫째 접근,내가 다음 단계 1-5 에서 설명 을 만드는 타임 스탬프 열 Entity Framework

  1. 추가라는 속성이"Timestamp"을 entity EF 의 모델
  2. 유형을 설정하는 바이너리
  3. 설정 널 false
  4. 설정 StoreGeneratedPattern 계산
  5. 트 고정 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 가 발생합니다.그것은 아닙니다.무엇이 잘못된 것입니까?시기 바랍 이해하는 데 도움이 되는,감사합니다.

Screenshot of my <code>Timestamp</code> property

도움이 되었습니까?

해결책

문제가 발생했기 때문에 하나 ObjectContext 당 HTTP 세션,그래서 새 탭을 열고 그것을 테스트하는 것 원인이 동시 예외는 아니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top