2012-06-19 3 views
4

트랜잭션 내에서 두 개의 formview를 업데이트하려고합니다. 그 중 하나가 실패하면 다른 하나도 실패해야합니다. Formview에는 자체 엔티티 데이터 소스가 있습니다.EF 트랜잭션의 Formview 업데이트

button1_click(..........) 
{ 
    formview1.updateItem(true); 
    formview2.updateItem(true); 
} 

답변

2

좋아요. 그렇다면 세계에서 가장 간단한 것은 아닙니다.

기본적인 대답은 네가 할 수 있다는 것입니다. updateItem 메서드가 db 연결을 여는 경우 코드는 이와 유사합니다. 반면에 연결이 이미에 updateItem 다음 호출되는 시간에 의해 열려 있으면

using (TransactionScope scope = new TransactionScope()) 
{ 
    formview1.updateItem(true); 
    formview2.updateItem(true); 
    scope.Complete(); 
} 

당신이 할 필요가 뭔가 더

using (TransactionScope scope = new TransactionScope()) 
{ 
    formview1.Connection.EnlistTransaction(Transcation.Current); 
    formview2.Connection.EnlistTransaction(Transcation.Current); 
    formview1.updateItem(true); 
    formview2.updateItem(true); 
    scope.Complete(); 
} 
같은
관련 문제