diff --git a/NFox/Cad/Runtime/DBTransaction.cs b/NFox/Cad/Runtime/DBTransaction.cs
index ba5d407970fcd6c635fa5c7900c958f1e94d1c4a..98e1f4ee9cebcf496f23a014ed3a6171e3676055 100644
--- a/NFox/Cad/Runtime/DBTransaction.cs
+++ b/NFox/Cad/Runtime/DBTransaction.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -19,7 +19,7 @@ namespace NFox.Cad
public class DBTransaction : IDisposable
{
private bool _commit = false;
-
+ private bool _disposed =false;
//属性
#region Properties
@@ -162,15 +162,32 @@ namespace NFox.Cad
Database.CloseInput(true);
Initialize(false);
}
-
///
/// 销毁
///
- void IDisposable.Dispose()
+ public void Dispose()
{
- Commit();
- Transaction.Dispose();
+ Dispose(true);
+ GC.SuppressFinalize(this);
}
+ protected virtual void Dispose(bool disposing)
+ {
+ if(!this._disposed)
+ {
+ if(disposing)
+ {
+ Commit();
+ Transaction.Dispose();
+ }
+ disposed = true;
+ }
+ }
+
+ //void IDisposable.Dispose()
+ //{
+ //Commit();
+ //Transaction.Dispose();
+ //}
///
/// 提交事务