You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.2 KiB
79 lines
2.2 KiB
// 麻省理工学院许可证
|
|
//
|
|
// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司 联系电话/微信:18020030720 QQ:515096995
|
|
//
|
|
// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
|
|
//
|
|
// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
|
|
// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
|
|
|
|
using Microsoft.AspNetCore.Mvc.Controllers;
|
|
using Microsoft.AspNetCore.Mvc.Filters;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
using SqlSugar;
|
|
using System.Reflection;
|
|
using System.Transactions;
|
|
|
|
namespace Wood.Data.Repository;
|
|
|
|
/// <summary>
|
|
/// SqlSugar 事务和工作单元
|
|
/// </summary>
|
|
public sealed class SqlSugarUnitOfWork : IUnitOfWork
|
|
{
|
|
/// <summary>
|
|
/// SqlSugar 对象
|
|
/// </summary>
|
|
private readonly ISqlSugarClient _sqlSugarClient;
|
|
|
|
/// <summary>
|
|
/// 构造函数
|
|
/// </summary>
|
|
/// <param name="sqlSugarClient"></param>
|
|
public SqlSugarUnitOfWork(ISqlSugarClient sqlSugarClient)
|
|
{
|
|
_sqlSugarClient = sqlSugarClient;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 开启工作单元处理
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <param name="unitOfWork"></param>
|
|
public void BeginTransaction()
|
|
{
|
|
_sqlSugarClient.AsTenant().BeginTran();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 提交工作单元处理
|
|
/// </summary>
|
|
/// <param name="resultContext"></param>
|
|
/// <param name="unitOfWork"></param>
|
|
public void CommitTransaction()
|
|
{
|
|
_sqlSugarClient.AsTenant().CommitTran();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 回滚工作单元处理
|
|
/// </summary>
|
|
/// <param name="resultContext"></param>
|
|
/// <param name="unitOfWork"></param>
|
|
public void RollbackTransaction()
|
|
{
|
|
_sqlSugarClient.AsTenant().RollbackTran();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行完毕(无论成功失败)
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <param name="resultContext"></param>
|
|
public void OnCompleted()
|
|
{
|
|
_sqlSugarClient.Dispose();
|
|
}
|
|
}
|
|
|
|
|