재고 관리를해야하므로 제품 양을 수정했을 때 올바른 방법으로 수행해야합니다. 엔터티 프레임 워크 4.0을 사용하고 있습니다엔티티 프레임 워크 동시성 : 트랜잭션 또는 동시성이 고정 되었습니까?
예를 들어, 트랜잭션을 사용할 경우 데이터베이스에서 레코드를로드 할 때 레코드가 차단되어로드 된 금액 인 항목 수를 빼거나 추가 할 수 있습니다. 필요한 것. 그러나이 방법은 데이터베이스의 레코드를 차단하고 성능상의 이유로 레코드를 차단하는 것이 가장 좋은 방법은 아닙니다. 이것은 EF와 거래를 언제 사용해야하는지 묻습니다.
다른 옵션은 레코드가 변경되었는지 감지하기 위해 timespan 열을 사용하여 엔티티 프레임 워크의 동시성을 사용하는 것입니다. 이 경우 레코드가 내로드와 내 업데이트 사이에서 수정되면 동시성의 예외가 발생합니다. 그러나 내 예외 처리기에서 데이터베이스 데이터로 내 컨텍스트를 업데이트하면 새로 고침과 savechanges를 다시 변경할 수 있습니다.
다른 문제는 결국 변경 사항을 저장할 수 있습니다. 예를 들어 10 단위가 있고, 8을 빼고 내 부하와 업데이트 사이에 다른 사람이 5 단위를 빼면됩니다. 제가 8을 빼면 재고가 -3입니다. 이건 불가능 해. 트랜잭션이있는 경우 레코드가로드되고 차단되므로 충분 한 단위가 있는지 확인할 수 있습니다. 그렇다면 하위 트랙을 만들 수 있습니다. 그렇지 않은 경우 예외를 보냅니다.
내 질문에, 나는 EF가 자체적으로 트랜잭션이라는 것을 알고 있지만 EF에도 트랜잭션이 있으므로 어떤 경우에는 유용 할 것입니다. EF와 cocurrency를 언제 사용하고 트랜잭션을 사용해야합니까?
감사합니다. Daimroc.