Skip to content

Commit

Permalink
Merge pull request #138 from SimonH/master
Browse files Browse the repository at this point in the history
Update to AdoAdapterTransaction
  • Loading branch information
markrendle committed Jan 19, 2012
2 parents 4bedc68 + f67bd52 commit 7006e03
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
8 changes: 4 additions & 4 deletions Simple.Data.Ado/AdoAdapter.cs
Expand Up @@ -154,7 +154,7 @@ public IAdapterTransaction BeginTransaction()
IDbConnection connection = CreateConnection();
connection.OpenIfClosed();
IDbTransaction transaction = connection.BeginTransaction();
return new AdoAdapterTransaction(transaction);
return new AdoAdapterTransaction(transaction, _sharedConnection != null);
}

public IAdapterTransaction BeginTransaction(string name)
Expand All @@ -166,7 +166,7 @@ public IAdapterTransaction BeginTransaction(string name)
? sqlConnection.BeginTransaction(name)
: connection.BeginTransaction();

return new AdoAdapterTransaction(transaction, name);
return new AdoAdapterTransaction(transaction, name, _sharedConnection != null);
}

public IEnumerable<IDictionary<string, object>> Find(string tableName, SimpleExpression criteria,
Expand Down Expand Up @@ -578,7 +578,7 @@ public IAdapterTransaction BeginTransaction(IsolationLevel isolationLevel)
IDbConnection connection = CreateConnection();
connection.OpenIfClosed();
IDbTransaction transaction = connection.BeginTransaction(isolationLevel);
return new AdoAdapterTransaction(transaction);
return new AdoAdapterTransaction(transaction, _sharedConnection != null);
}

public IAdapterTransaction BeginTransaction(IsolationLevel isolationLevel, string name)
Expand All @@ -590,7 +590,7 @@ public IAdapterTransaction BeginTransaction(IsolationLevel isolationLevel, strin
? sqlConnection.BeginTransaction(isolationLevel, name)
: connection.BeginTransaction(isolationLevel);

return new AdoAdapterTransaction(transaction, name);
return new AdoAdapterTransaction(transaction, name, _sharedConnection != null);
}

public string GetIdentityFunction()
Expand Down
9 changes: 6 additions & 3 deletions Simple.Data.Ado/AdoAdapterTransaction.cs
Expand Up @@ -12,16 +12,18 @@ class AdoAdapterTransaction : IAdapterTransaction
private readonly string _name;
private readonly IDbTransaction _dbTransaction;
private readonly IDbConnection _dbConnection;
private readonly bool _sharedConnection;

public AdoAdapterTransaction(IDbTransaction dbTransaction) : this(dbTransaction, null)
public AdoAdapterTransaction(IDbTransaction dbTransaction, bool sharedConnection = false) : this(dbTransaction, null, sharedConnection)
{
}

public AdoAdapterTransaction(IDbTransaction dbTransaction, string name)
public AdoAdapterTransaction(IDbTransaction dbTransaction, string name, bool sharedConnection = false)
{
_name = name;
_dbTransaction = dbTransaction;
_dbConnection = _dbTransaction.Connection;
_sharedConnection = sharedConnection;
}

internal IDbTransaction Transaction
Expand All @@ -32,7 +34,8 @@ internal IDbTransaction Transaction
public void Dispose()
{
_dbTransaction.Dispose();
_dbConnection.Dispose();
if (!_sharedConnection)
_dbConnection.Dispose();
}

public void Commit()
Expand Down

0 comments on commit 7006e03

Please sign in to comment.