Skip to content

Commit fb6f326

Browse files
committed
Implement internal OpenConnectionAsync and BeginTransactionAsync
1 parent 69253d2 commit fb6f326

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

DirectSQL/Database.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public async Task<Database<C,T,CMD,R,P>> ProcessAsync(AsyncConnectExecution<C> e
8888
{
8989
using (var connection = CreateConnection())
9090
{
91-
connection.Open();
91+
await OpenConnectionAsync(connection);
9292
await execute(connection);
9393
}
9494
return this;
@@ -139,6 +139,25 @@ public Database<C,T,CMD,R,P> Process(SqlExecution<C,T> execute)
139139
/// <returns></returns>
140140
protected abstract C CreateConnection();
141141

142+
/// <summary>
143+
/// Open Connection asynchrously
144+
/// </summary>
145+
private async static Task<C> OpenConnectionAsync(C conn){
146+
var task = Task.Run(() => { conn.Open(); });
147+
await task;
148+
return conn;
149+
}
150+
151+
/// <summary>
152+
/// Begin Transaction asynchronously
153+
/// </summary>
154+
private async static Task<T> BeginTransactionAsync(C conn){
155+
T tran = default(T);
156+
var task = Task.Run(() => { tran = (T) conn.BeginTransaction();});
157+
await task;
158+
return tran;
159+
}
160+
142161
/// <summary>
143162
/// Execute a sql like update / insert
144163
/// </summary>
@@ -747,7 +766,7 @@ public static async Task TransactionAsync(
747766
C connection,
748767
AsyncSqlExecution<C,T> execute)
749768
{
750-
using (var transaction = (T) connection.BeginTransaction())
769+
using (var transaction = await BeginTransactionAsync(connection))
751770
{
752771
try
753772
{

0 commit comments

Comments
 (0)