@ -342,7 +342,6 @@ namespace PetaPoco
// Common initialization
// Common initialization
private void CommonConstruct ( )
private void CommonConstruct ( )
{
{
_transactionDepth = 0 ;
ForceDateTimesToUtc = true ;
ForceDateTimesToUtc = true ;
EnableAutoSelect = true ;
EnableAutoSelect = true ;
@ -407,6 +406,7 @@ namespace PetaPoco
OnConnectionClosing ( _sharedConnection ) ;
OnConnectionClosing ( _sharedConnection ) ;
_sharedConnection . Dispose ( ) ;
_sharedConnection . Dispose ( ) ;
_sharedConnection = null ;
_sharedConnection = null ;
_transaction = null ;
}
}
}
}
@ -440,16 +440,12 @@ namespace PetaPoco
// matched by a call to AbortTransaction or CompleteTransaction
// matched by a call to AbortTransaction or CompleteTransaction
// Use `using (var scope=db.Transaction) { scope.Complete(); }` to ensure correct semantics
// Use `using (var scope=db.Transaction) { scope.Complete(); }` to ensure correct semantics
public void BeginTransaction ( IsolationLevel ? isolationLevel )
public void BeginTransaction ( IsolationLevel ? isolationLevel )
{
_transactionDepth + + ;
if ( _transactionDepth = = 1 )
{
{
OpenSharedConnection ( ) ;
OpenSharedConnection ( ) ;
_transaction = isolationLevel = = null ? _sharedConnection . BeginTransaction ( ) : _sharedConnection . BeginTransaction ( isolationLevel . Value ) ;
_transaction = isolationLevel = = null ? _sharedConnection . BeginTransaction ( ) : _sharedConnection . BeginTransaction ( isolationLevel . Value ) ;
_transactionCancelled = false ;
_transactionCancelled = false ;
OnBeginTransaction ( ) ;
OnBeginTransaction ( ) ;
}
}
}
@ -473,14 +469,12 @@ namespace PetaPoco
public void AbortTransaction ( )
public void AbortTransaction ( )
{
{
_transactionCancelled = true ;
_transactionCancelled = true ;
if ( ( - - _transactionDepth ) = = 0 )
CleanupTransaction ( ) ;
CleanupTransaction ( ) ;
}
}
// Complete the transaction
// Complete the transaction
public void CompleteTransaction ( )
public void CompleteTransaction ( )
{
{
if ( ( - - _transactionDepth ) = = 0 )
CleanupTransaction ( ) ;
CleanupTransaction ( ) ;
}
}
@ -2524,7 +2518,6 @@ namespace PetaPoco
DbProviderFactory _factory ;
DbProviderFactory _factory ;
IDbConnection _sharedConnection ;
IDbConnection _sharedConnection ;
IDbTransaction _transaction ;
IDbTransaction _transaction ;
int _transactionDepth ;
bool _transactionCancelled ;
bool _transactionCancelled ;
string _lastSql ;
string _lastSql ;
object [ ] _lastArgs ;
object [ ] _lastArgs ;