SqlSugarUnitOfWork.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // 大名科技(天津)有限公司 版权所有
  2. //
  3. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
  4. //
  5. // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动
  6. //
  7. // 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关
  8. namespace Admin.NET.Core;
  9. /// <summary>
  10. /// SqlSugar 事务和工作单元
  11. /// </summary>
  12. public sealed class SqlSugarUnitOfWork : IUnitOfWork
  13. {
  14. /// <summary>
  15. /// SqlSugar 对象
  16. /// </summary>
  17. private readonly ISqlSugarClient _sqlSugarClient;
  18. /// <summary>
  19. /// 构造函数
  20. /// </summary>
  21. /// <param name="sqlSugarClient"></param>
  22. public SqlSugarUnitOfWork(ISqlSugarClient sqlSugarClient)
  23. {
  24. _sqlSugarClient = sqlSugarClient;
  25. }
  26. /// <summary>
  27. /// 开启工作单元处理
  28. /// </summary>
  29. /// <param name="context"></param>
  30. /// <param name="unitOfWork"></param>
  31. /// <exception cref="NotImplementedException"></exception>
  32. public void BeginTransaction(FilterContext context, UnitOfWorkAttribute unitOfWork)
  33. {
  34. _sqlSugarClient.AsTenant().BeginTran();
  35. }
  36. /// <summary>
  37. /// 提交工作单元处理
  38. /// </summary>
  39. /// <param name="resultContext"></param>
  40. /// <param name="unitOfWork"></param>
  41. /// <exception cref="NotImplementedException"></exception>
  42. public void CommitTransaction(FilterContext resultContext, UnitOfWorkAttribute unitOfWork)
  43. {
  44. _sqlSugarClient.AsTenant().CommitTran();
  45. }
  46. /// <summary>
  47. /// 回滚工作单元处理
  48. /// </summary>
  49. /// <param name="resultContext"></param>
  50. /// <param name="unitOfWork"></param>
  51. /// <exception cref="NotImplementedException"></exception>
  52. public void RollbackTransaction(FilterContext resultContext, UnitOfWorkAttribute unitOfWork)
  53. {
  54. _sqlSugarClient.AsTenant().RollbackTran();
  55. }
  56. /// <summary>
  57. /// 执行完毕(无论成功失败)
  58. /// </summary>
  59. /// <param name="context"></param>
  60. /// <param name="resultContext"></param>
  61. /// <exception cref="NotImplementedException"></exception>
  62. public void OnCompleted(FilterContext context, FilterContext resultContext)
  63. {
  64. _sqlSugarClient.Dispose();
  65. }
  66. }