SqlSugarUnitOfWork.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证。
  2. //
  3. // 必须在法律法规允许的范围内正确使用,严禁将其用于非法、欺诈、恶意或侵犯他人合法权益的目的。
  4. namespace Admin.NET.Core;
  5. /// <summary>
  6. /// SqlSugar 事务和工作单元
  7. /// </summary>
  8. public sealed class SqlSugarUnitOfWork : IUnitOfWork
  9. {
  10. /// <summary>
  11. /// SqlSugar 对象
  12. /// </summary>
  13. private readonly ISqlSugarClient _sqlSugarClient;
  14. /// <summary>
  15. /// 构造函数
  16. /// </summary>
  17. /// <param name="sqlSugarClient"></param>
  18. public SqlSugarUnitOfWork(ISqlSugarClient sqlSugarClient)
  19. {
  20. _sqlSugarClient = sqlSugarClient;
  21. }
  22. /// <summary>
  23. /// 开启工作单元处理
  24. /// </summary>
  25. /// <param name="context"></param>
  26. /// <param name="unitOfWork"></param>
  27. /// <exception cref="NotImplementedException"></exception>
  28. public void BeginTransaction(FilterContext context, UnitOfWorkAttribute unitOfWork)
  29. {
  30. _sqlSugarClient.AsTenant().BeginTran();
  31. }
  32. /// <summary>
  33. /// 提交工作单元处理
  34. /// </summary>
  35. /// <param name="resultContext"></param>
  36. /// <param name="unitOfWork"></param>
  37. /// <exception cref="NotImplementedException"></exception>
  38. public void CommitTransaction(FilterContext resultContext, UnitOfWorkAttribute unitOfWork)
  39. {
  40. _sqlSugarClient.AsTenant().CommitTran();
  41. }
  42. /// <summary>
  43. /// 回滚工作单元处理
  44. /// </summary>
  45. /// <param name="resultContext"></param>
  46. /// <param name="unitOfWork"></param>
  47. /// <exception cref="NotImplementedException"></exception>
  48. public void RollbackTransaction(FilterContext resultContext, UnitOfWorkAttribute unitOfWork)
  49. {
  50. _sqlSugarClient.AsTenant().RollbackTran();
  51. }
  52. /// <summary>
  53. /// 执行完毕(无论成功失败)
  54. /// </summary>
  55. /// <param name="context"></param>
  56. /// <param name="resultContext"></param>
  57. /// <exception cref="NotImplementedException"></exception>
  58. public void OnCompleted(FilterContext context, FilterContext resultContext)
  59. {
  60. _sqlSugarClient.Dispose();
  61. }
  62. }