diff --git a/DbContext.md b/DbContext.md index a84dfa1..3e8aada 100644 --- a/DbContext.md +++ b/DbContext.md @@ -250,6 +250,10 @@ uow.OnEntityChange = report => { public class ChangeInfo { public object Object { get; set; } public EntityChangeType Type { get; set; } + /// + /// Type = Update 的时候,获取更新之前的对象 + /// + public object BeforeObject { get; set; } } public enum EntityChangeType { Insert, Update, Delete, SqlRaw } ``` diff --git a/工作单元.md b/工作单元.md index e27e613..e6bb7d5 100644 --- a/工作单元.md +++ b/工作单元.md @@ -1,14 +1,13 @@ - UnitOfWork 可将多个仓储放在一个单元管理执行,最终通用 Commit 执行所有操作,内部采用了数据库事务; ```csharp var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + - "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10"; + "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10"; static IFreeSql fsql = new FreeSql.FreeSqlBuilder() - .UseConnectionString(FreeSql.DataType.MySql, connstr) - .UseAutoSyncStructure(true) //自动同步实体结构到数据库 - .Build(); //请务必定义成 Singleton 单例模式 + .UseConnectionString(FreeSql.DataType.MySql, connstr) + .UseAutoSyncStructure(true) //自动同步实体结构到数据库 + .Build(); //请务必定义成 Singleton 单例模式 ``` ## 如何使用 @@ -36,36 +35,36 @@ uow.GetOrBeginTransaction() 方法可获取事务对象。 ```csharp public interface IUnitOfWork : IDisposable { - DbTransaction GetOrBeginTransaction(bool isCreate = true); + DbTransaction GetOrBeginTransaction(bool isCreate = true); - IsolationLevel? IsolationLevel { get; set; } + IsolationLevel? IsolationLevel { get; set; } - /// - /// 是否启用工作单元 - /// - bool Enable { get; } + /// + /// 是否启用工作单元 + /// + bool Enable { get; } - void Commit(); + void Commit(); - void Rollback(); + void Rollback(); - /// - /// 禁用工作单元 - /// - /// - /// 若已开启事务(已有Insert/Update/Delete操作),调用此方法将发生异常,建议在执行逻辑前调用 - /// - void Close(); + /// + /// 禁用工作单元 + /// + /// + /// 若已开启事务(已有Insert/Update/Delete操作),调用此方法将发生异常,建议在执行逻辑前调用 + /// + void Close(); - /// - /// 开启工作单元 - /// - void Open(); + /// + /// 开启工作单元 + /// + void Open(); - /// - /// 此工作单元内的实体变化跟踪 - /// - DbContext.EntityChangeReport EntityChangeReport { get; } + /// + /// 此工作单元内的实体变化跟踪 + /// + DbContext.EntityChangeReport EntityChangeReport { get; } } ``` @@ -75,9 +74,9 @@ public interface IUnitOfWork : IDisposable { ```csharp fsql.SetDbContextOptions(opt => { - opt.OnEntityChange = report => { - Console.WriteLine(report); - }; + opt.OnEntityChange = report => { + Console.WriteLine(report); + }; }); ``` @@ -86,7 +85,7 @@ fsql.SetDbContextOptions(opt => { ```csharp var uow = fsql.CreateUnitOfWork(); uow.OnEntityChange = report => { - Console.WriteLine(report); + Console.WriteLine(report); }; ``` @@ -94,8 +93,12 @@ uow.OnEntityChange = report => { ```csharp public class ChangeInfo { - public object Object { get; set; } - public EntityChangeType Type { get; set; } + public object Object { get; set; } + public EntityChangeType Type { get; set; } + /// + /// Type = Update 的时候,获取更新之前的对象 + /// + public object BeforeObject { get; set; } } public enum EntityChangeType { Insert, Update, Delete, SqlRaw } ```