Add OpenAsync CloseAsync

This commit is contained in:
sunkaixuan 2025-02-17 17:54:59 +08:00
parent 15c193f22f
commit afdece575c
2 changed files with 27 additions and 0 deletions

View File

@ -122,6 +122,10 @@ namespace SqlSugar
{
CheckConnection();
}
public virtual async Task OpenAsync()
{
await CheckConnectionAsync();
}
public SugarConnection OpenAlways()
{
SugarConnection result = new SugarConnection();
@ -132,6 +136,27 @@ namespace SqlSugar
this.Open();
return result;
}
public async Task CloseAsync()
{
if (this.Transaction != null)
{
this.Transaction = null;
}
if (this.Connection != null && this.Connection.State == ConnectionState.Open)
{
await ((DbConnection)this.Connection).CloseAsync();
}
if (this.IsMasterSlaveSeparation && this.SlaveConnections.HasValue())
{
foreach (var slaveConnection in this.SlaveConnections)
{
if (slaveConnection != null && slaveConnection.State == ConnectionState.Open)
{
await ((DbConnection)slaveConnection).CloseAsync();
}
}
}
}
public virtual void Close()
{
if (this.Transaction != null)

View File

@ -174,7 +174,9 @@ namespace SqlSugar
void Dispose();
void Close();
Task CloseAsync();
void Open();
Task OpenAsync();
SugarConnection OpenAlways();
bool IsValidConnection();
bool IsValidConnectionNoClose();