diff --git a/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs index 7600a677f..4918461ff 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs @@ -223,6 +223,12 @@ namespace SqlSugar if (this.Transaction == null) this.Transaction = this.Connection.BeginTransaction(iso); } + public virtual async Task BeginTranAsync(IsolationLevel iso) + { + await CheckConnectionAsync(); + if (this.Transaction == null) + this.Transaction =await (this.Connection as DbConnection).BeginTransactionAsync(iso); + } public virtual void RollbackTran() { if (this.Transaction != null) diff --git a/Src/Asp.Net/SqlSugar/Interface/IAdo.cs b/Src/Asp.Net/SqlSugar/Interface/IAdo.cs index 1da6556b8..a060240e9 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IAdo.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IAdo.cs @@ -172,6 +172,7 @@ namespace SqlSugar void BeginTran(); Task BeginTranAsync(); + Task BeginTranAsync(IsolationLevel iso); void BeginTran(IsolationLevel iso); void BeginTran(string transactionName); void BeginTran(IsolationLevel iso, string transactionName); diff --git a/Src/Asp.Net/SqlSugar/OnlyNet/AsyncHelper.cs b/Src/Asp.Net/SqlSugar/OnlyNet/AsyncHelper.cs index 5e4799e7d..412026c47 100644 --- a/Src/Asp.Net/SqlSugar/OnlyNet/AsyncHelper.cs +++ b/Src/Asp.Net/SqlSugar/OnlyNet/AsyncHelper.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Data; using System.Data.Common; using System.Linq; using System.Text; @@ -15,6 +16,14 @@ namespace SqlSugar //.net frame work no BeginTransactionAsync return db.BeginTransaction(); } + + public static async Task BeginTransactionAsync(this DbConnection db, IsolationLevel iso) + { + await Task.Delay(0); + //.net frame work no BeginTransactionAsync + return db.BeginTransaction(iso); + } + public static async Task CloseAsync(this DbConnection db) { await Task.Delay(0); diff --git a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs index e8cbc14d4..956b4ee33 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs @@ -929,6 +929,12 @@ namespace SqlSugar _IsAllTran = true; await AllClientEachAsync(async it => await it.Ado.BeginTranAsync()); } + + public async Task BeginTranAsync(IsolationLevel iso) + { + _IsAllTran = true; + await AllClientEachAsync(async it => await it.Ado.BeginTranAsync(iso)); + } public void CommitTran() {