2012-08-09 3 views
0

는 열, 이름, 주소, 균형을 CUSTOMER_ID와 나는 은행 계좌 테이블이 있다고 가정하자. 고객이 돈을 입금하고 인출하기 때문에 잔액이 끊임없이 변합니다. 어떻게하면 DBConcurrencyException을 동시에 가져 오지 않고 고객의 주소를 알 수 있습니까?간단한 동시성 ASP.NET 데이터베이스

이 상황에서 일반적인 접근 방법은 무엇입니까? 두 사용자가 테이블 행에서 동일한 셀을 변경할 수는 없지만 셀이 동일한 행에서 다른 셀을 변경하고 행을 다른 값으로 업데이트 할 수는 없습니다. 문제?

+0

실제 은행이 아니기를 바랍니다. 실제로'name','address'와'balance'를 같은 테이블에 저장하고 있다면 이미 잘못하고 있습니다! 정규화에 대해 읽어보십시오. – Widor

답변

0

당신은 LINQ를 사용하고 있는지 확실하지 않습니다,하지만 당신은 다음 경우에 당신은 동시성을 처리하는 방법을 살펴 보셔야합니다. LINQ는 낙관적 인 동시성을 사용합니다. 따라서 기본적으로 사용자가 레코드를 업데이트하려고 시도하고 그 중간에 레코드가 업데이트되면 동시성 충돌이 발생합니다.

그러나, 당신은 당신의 LINQ 테이블에서 속성이 해당 레코드의 값이 변경된 경우 LINQ 상관하지 않습니다이 경우 동시성 조사해 보니 사용하는 결정할 수 있습니다.

또한이 exception-- 주위에 try 블록을 놓고 다양한 시나리오를 처리하는 코드를 작성 할 수있는 예외 중을 처리하는 방법이 있습니다.