Merge pull request #1124 from DengWang/master

add IsolationLevel for BeginTranAsync
This commit is contained in:
果糖网
2023-01-16 12:10:37 +08:00
committed by GitHub
7 changed files with 43 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()
{

View File

@@ -217,6 +217,14 @@ namespace SqlSugar
if (this.Transaction == null)
this.Transaction =await (this.Connection as DbConnection).BeginTransactionAsync();
}
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 BeginTran(IsolationLevel iso)
{
CheckConnection();

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

@@ -923,12 +923,24 @@ namespace SqlSugar
_IsAllTran = true;
AllClientEach(it => it.Ado.BeginTran());
}
public void BeginTran(IsolationLevel iso)
{
_IsAllTran = true;
AllClientEach(it => it.Ado.BeginTran(iso));
}
public async Task BeginTranAsync()
{
_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()
{