- 增加 IUnitOfWork.States 自定义状态管理,便于扩展;

This commit is contained in:
2881099
2021-08-31 10:59:39 +08:00
parent 50a8cc2376
commit 26f2578cf6
5 changed files with 321 additions and 132 deletions

View File

@ -365,6 +365,11 @@
工作单元内的实体变化跟踪
</summary>
</member>
<member name="P:FreeSql.IUnitOfWork.States">
<summary>
自定义的状态数据
</summary>
</member>
<member name="P:FreeSql.UnitOfWork.DebugBeingUsed">
<summary>
正在使用中的工作单元(调试)

View File

@ -32,5 +32,10 @@ namespace FreeSql
/// 工作单元内的实体变化跟踪
/// </summary>
DbContext.EntityChangeReport EntityChangeReport { get; }
/// <summary>
/// 用户自定义的状态数据,便于扩展
/// </summary>
Dictionary<string, object> States { get; }
}
}

View File

@ -164,6 +164,8 @@ namespace FreeSql
public DbContext.EntityChangeReport EntityChangeReport { get; } = new DbContext.EntityChangeReport();
public Dictionary<string, object> States { get; } = new Dictionary<string, object>();
~UnitOfWork() => this.Dispose();
int _disposeCounter;
public void Dispose()

View File

@ -188,6 +188,7 @@ namespace FreeSql
public IFreeSql Orm => _baseUow.Orm;
public IsolationLevel? IsolationLevel { get => _baseUow.IsolationLevel; set => _baseUow.IsolationLevel = value; }
public DbContext.EntityChangeReport EntityChangeReport => _baseUow.EntityChangeReport;
public Dictionary<string, object> States => _baseUow.States;
public DbTransaction GetOrBeginTransaction(bool isCreate = true) => _baseUow.GetOrBeginTransaction(isCreate);
public void Commit() => _baseUow.Commit();
@ -206,6 +207,7 @@ namespace FreeSql
public IFreeSql Orm => _baseUow.Orm;
public IsolationLevel? IsolationLevel { get => _baseUow.IsolationLevel; set { } }
public DbContext.EntityChangeReport EntityChangeReport => _baseUow.EntityChangeReport;
public Dictionary<string, object> States => _baseUow.States;
public DbTransaction GetOrBeginTransaction(bool isCreate = true) => _baseUow.GetOrBeginTransaction(isCreate);
public void Commit() { }
@ -220,6 +222,7 @@ namespace FreeSql
public IFreeSql Orm => _fsql;
public IsolationLevel? IsolationLevel { get; set; }
public DbContext.EntityChangeReport EntityChangeReport { get; } = new DbContext.EntityChangeReport();
public Dictionary<string, object> States { get; } = new Dictionary<string, object>();
public DbTransaction GetOrBeginTransaction(bool isCreate = true) => null;
public void Commit()