add IsolationLevel for BeginTranAsync

This commit is contained in:
Lucas
2023-01-16 10:46:30 +08:00
parent f128c718cc
commit 4ff15bd4ba
4 changed files with 22 additions and 0 deletions

View File

@@ -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)

View File

@@ -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);

View File

@@ -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<DbTransaction> 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);

View File

@@ -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()
{