Skip to content

Commit 26f2578

Browse files
committed
- 增加 IUnitOfWork.States 自定义状态管理,便于扩展;
1 parent 50a8cc2 commit 26f2578

File tree

5 files changed

+292
-103
lines changed

5 files changed

+292
-103
lines changed

FreeSql.DbContext/FreeSql.DbContext.xml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FreeSql.DbContext/UnitOfWork/IUnitOfWork.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,10 @@ public interface IUnitOfWork : IDisposable
3232
/// 工作单元内的实体变化跟踪
3333
/// </summary>
3434
DbContext.EntityChangeReport EntityChangeReport { get; }
35+
36+
/// <summary>
37+
/// 用户自定义的状态数据,便于扩展
38+
/// </summary>
39+
Dictionary<string, object> States { get; }
3540
}
3641
}

FreeSql.DbContext/UnitOfWork/UnitOfWork.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@ public void Rollback()
164164

165165
public DbContext.EntityChangeReport EntityChangeReport { get; } = new DbContext.EntityChangeReport();
166166

167+
public Dictionary<string, object> States { get; } = new Dictionary<string, object>();
168+
167169
~UnitOfWork() => this.Dispose();
168170
int _disposeCounter;
169171
public void Dispose()

FreeSql.DbContext/UnitOfWork/UnitOfWorkManager.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ class UnitOfWorkOrginal : IUnitOfWork
188188
public IFreeSql Orm => _baseUow.Orm;
189189
public IsolationLevel? IsolationLevel { get => _baseUow.IsolationLevel; set => _baseUow.IsolationLevel = value; }
190190
public DbContext.EntityChangeReport EntityChangeReport => _baseUow.EntityChangeReport;
191+
public Dictionary<string, object> States => _baseUow.States;
191192

192193
public DbTransaction GetOrBeginTransaction(bool isCreate = true) => _baseUow.GetOrBeginTransaction(isCreate);
193194
public void Commit() => _baseUow.Commit();
@@ -206,6 +207,7 @@ class UnitOfWorkVirtual : IUnitOfWork
206207
public IFreeSql Orm => _baseUow.Orm;
207208
public IsolationLevel? IsolationLevel { get => _baseUow.IsolationLevel; set { } }
208209
public DbContext.EntityChangeReport EntityChangeReport => _baseUow.EntityChangeReport;
210+
public Dictionary<string, object> States => _baseUow.States;
209211

210212
public DbTransaction GetOrBeginTransaction(bool isCreate = true) => _baseUow.GetOrBeginTransaction(isCreate);
211213
public void Commit() { }
@@ -220,6 +222,7 @@ class UnitOfWorkNothing : IUnitOfWork
220222
public IFreeSql Orm => _fsql;
221223
public IsolationLevel? IsolationLevel { get; set; }
222224
public DbContext.EntityChangeReport EntityChangeReport { get; } = new DbContext.EntityChangeReport();
225+
public Dictionary<string, object> States { get; } = new Dictionary<string, object>();
223226

224227
public DbTransaction GetOrBeginTransaction(bool isCreate = true) => null;
225228
public void Commit()

0 commit comments

Comments
 (0)