From b2ad000e07e1c87d3561b5aa94fdc88c779872f0 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 18 二月 2025 22:34:54 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/UnitOfWorks/UnitOfWork.cs |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/UnitOfWorks/UnitOfWork.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/UnitOfWorks/UnitOfWork.cs"
new file mode 100644
index 0000000..d4ca76b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/UnitOfWorks/UnitOfWork.cs"
@@ -0,0 +1,55 @@
+锘縰sing Microsoft.Extensions.Logging;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Core.BaseRepository
+{
+    public class UnitOfWork : IDisposable
+    {
+        public ILogger Logger { get; set; }
+        public ISqlSugarClient Db { get; internal set; }
+
+        public ITenant Tenant { get; internal set; }
+
+        public bool IsTran { get; internal set; }
+
+        public bool IsCommit { get; internal set; }
+
+        public bool IsClose { get; internal set; }
+
+        public void Dispose()
+        {
+            if (IsTran && !IsCommit)
+            {
+                Logger.LogDebug("UnitOfWork RollbackTran");
+                this.Tenant.RollbackTran();
+            }
+
+            if (this.Db.Ado.Transaction != null || this.IsClose)
+                return;
+            this.Db.Close();
+        }
+
+        public bool Commit()
+        {
+            if (this.IsTran && !this.IsCommit)
+            {
+                Logger.LogDebug("UnitOfWork CommitTran");
+                this.Tenant.CommitTran();
+                this.IsCommit = true;
+            }
+
+            if (this.Db.Ado.Transaction == null && !this.IsClose)
+            {
+                this.Db.Close();
+                this.IsClose = true;
+            }
+
+            return this.IsCommit;
+        }
+    }
+}

--
Gitblit v1.9.3