- 增加 FreeSql.DbContext 实体对象的变化事件;

> 文档:https://github.com/2881099/FreeSql/wiki/DbContext#%E5%AE%9E%E4%BD%93%E5%8F%98%E5%8C%96%E4%BA%8B%E4%BB%B6
- 补充 Aop.CurdBefore 事件参数 Table 实体类型的元数据;
This commit is contained in:
28810
2019-10-12 01:02:42 +08:00
parent 9a8d51da50
commit e823f9dcd0
43 changed files with 285 additions and 146 deletions

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
@ -32,5 +33,10 @@ namespace FreeSql
/// 开启工作单元
/// </summary>
void Open();
/// <summary>
/// 实体变化事件
/// </summary>
Action<List<DbContext.EntityChangeInfo>> OnEntityChange { get; set; }
}
}

View File

@ -1,5 +1,6 @@
using SafeObjectPool;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Threading;
@ -32,6 +33,7 @@ namespace FreeSql
#if ns20
Current.Value = null;
#endif
EntityChangeReport.Clear();
}
public bool Enable { get; private set; } = true;
@ -76,7 +78,11 @@ namespace FreeSql
{
try
{
if (_tran != null) _tran.Commit();
if (_tran != null)
{
_tran.Commit();
OnEntityChange?.Invoke(EntityChangeReport);
}
}
finally
{
@ -94,6 +100,13 @@ namespace FreeSql
ReturnObject();
}
}
public Action<List<DbContext.EntityChangeInfo>> OnEntityChange { get; set; }
/// <summary>
/// 工作单元的实体变化记录
/// </summary>
public List<DbContext.EntityChangeInfo> EntityChangeReport { get; } = new List<DbContext.EntityChangeInfo>();
~UnitOfWork()
{
this.Dispose();