2011-04-19 3 views
0

MSDN은 트랜잭션에 대해 Dispose이 수행해야하는 것을 정의하지 않습니다. 그래서 내 생각 엔 ADO.NET 드라이버가 리소스를 정리하는 것 외에는 특별한 작업을 수행하지 않는다는 것입니다.IDbTransaction 및 IDisposable

Dispose 전에 CommitRollback 중 어느 것도 호출되지 않은 경우 Rollback을 호출하면 멋질 것입니다.

답변

2

Dispose()가 호출되기 전에 Commit() 호출이 성공적으로 수행되지 않은 경우 동작 (공식적으로 문서화되지는 않았지만)은 Rollback()입니다. .NET System.Data 어셈블리를 역 어셈블하여 확인할 수 있습니다.

+0

방금 ​​npgsql 소스 코드를 확인했습니다. 그것은 트랜잭션 구현에 대해서도 동일합니다. – jgauffin