From 24cc8bc1daa59987d8df6d370c8e76ac018cab5f Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Mon, 2 Mar 2020 18:57:53 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E8=B0=83=E6=95=B4=20Aop=20=E6=94=B9?=
=?UTF-8?q?=E4=B8=BA=20event=20=E4=BA=8B=E4=BB=B6=EF=BC=9B=20-=20=E8=B0=83?=
=?UTF-8?q?=E6=95=B4=20Ado.AopCommandExecuting/AopCommandExecuted=20?=
=?UTF-8?q?=E5=88=B0=20Aop.CommandBefore/After=EF=BC=9B=20-=20=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=20Aop.TraceBefore/After=20=E4=BA=8B=E4=BB=B6=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Examples/dbcontext_01/Startup.cs | 8 +-
Examples/restful/Startup.cs | 2 +-
.../FreeSql.Extensions.LazyLoading.csproj | 3 -
FreeSql.DbContext/DbSet/DbSetAsync.cs | 7 +-
FreeSql.DbContext/DbSet/DbSetSync.cs | 7 +-
FreeSql.DbContext/FreeSql.DbContext.xml | 14 +-
FreeSql.DbContext/UnitOfWork/IUnitOfWork.cs | 5 +
FreeSql.DbContext/UnitOfWork/UnitOfWork.cs | 62 ++++-
.../FreeSql.Tests.Provider.Odbc/UnitTest1.cs | 2 +-
.../DataAnnotations/MySqlFluentTest.cs | 4 +-
FreeSql.Tests/FreeSql.Tests/UnitTest1.cs | 2 +-
FreeSql.Tests/FreeSql.Tests/UnitTest2.cs | 2 +-
FreeSql/FreeSql.csproj | 2 +-
FreeSql/FreeSql.xml | 96 ++++++--
FreeSql/FreeSqlBuilder.cs | 12 +-
FreeSql/Interface/IAdo.cs | 8 -
FreeSql/Interface/IAop.cs | 167 ++++++++++++-
FreeSql/Internal/CommonExpression.cs | 12 +-
.../CommonProvider/AdoProvider/AdoProvider.cs | 79 +++----
.../AdoProvider/AdoProviderAsync.cs | 52 ++---
.../AdoProvider/AdoProviderTransaction.cs | 36 ++-
.../Internal/CommonProvider/AopProvider.cs | 41 +++-
.../CommonProvider/CodeFirstProvider.cs | 4 +-
.../Internal/CommonProvider/DeleteProvider.cs | 4 +-
.../CommonProvider/DeleteProviderAsync.cs | 4 +-
.../Internal/CommonProvider/InsertProvider.cs | 219 +++++++++++-------
.../CommonProvider/InsertProviderAsync.cs | 215 ++++++++++-------
.../SelectProvider/Select0Provider.cs | 44 ++--
.../Internal/CommonProvider/UpdateProvider.cs | 152 +++++++-----
.../CommonProvider/UpdateProviderAsync.cs | 142 ++++++++----
FreeSql/Internal/CommonUtils.cs | 12 +-
.../Curd/MsAccessInsert.cs | 16 +-
.../Curd/MySqlDelete.cs | 8 +-
.../Curd/MySqlInsert.cs | 16 +-
.../Curd/MySqlUpdate.cs | 8 +-
.../Curd/OnDuplicateKeyUpdate.cs | 8 +-
.../Dameng/Curd/OdbcDamengInsert.cs | 16 +-
.../Default/Curd/OdbcInsert.cs | 8 +-
.../GBase/Curd/__OdbcGBaseInsert.cs | 16 +-
.../MySql/Curd/OdbcMySqlDelete.cs | 8 +-
.../MySql/Curd/OdbcMySqlInsert.cs | 16 +-
.../MySql/Curd/OdbcMySqlUpdate.cs | 8 +-
.../Oracle/Curd/OdbcOracleInsert.cs | 16 +-
.../PostgreSQL/Curd/OdbcPostgreSQLDelete.cs | 8 +-
.../PostgreSQL/Curd/OdbcPostgreSQLInsert.cs | 24 +-
.../PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs | 8 +-
.../SqlServer/Curd/OdbcSqlServerDelete.cs | 8 +-
.../SqlServer/Curd/OdbcSqlServerInsert.cs | 24 +-
.../SqlServer/Curd/OdbcSqlServerUpdate.cs | 8 +-
.../Curd/OracleInsert.cs | 16 +-
.../Curd/OnConflictDoUpdate.cs | 8 +-
.../Curd/PostgreSQLDelete.cs | 8 +-
.../Curd/PostgreSQLInsert.cs | 24 +-
.../Curd/PostgreSQLUpdate.cs | 8 +-
.../Curd/SqlServerDelete.cs | 8 +-
.../Curd/SqlServerInsert.cs | 16 +-
.../Curd/SqlServerUpdate.cs | 8 +-
.../Curd/SqliteInsert.cs | 8 +-
58 files changed, 1109 insertions(+), 638 deletions(-)
diff --git a/Examples/dbcontext_01/Startup.cs b/Examples/dbcontext_01/Startup.cs
index 777f8be3..6ac054d2 100644
--- a/Examples/dbcontext_01/Startup.cs
+++ b/Examples/dbcontext_01/Startup.cs
@@ -31,20 +31,20 @@ namespace dbcontext_01
(cmd, log) => Trace.WriteLine(log)
)
.Build();
- Fsql.Aop.SyncStructureBefore = (s, e) =>
+ Fsql.Aop.SyncStructureBefore += (s, e) =>
{
Console.WriteLine(e.Identifier + ": " + string.Join(", ", e.EntityTypes.Select(a => a.FullName)));
};
- Fsql.Aop.SyncStructureAfter = (s, e) =>
+ Fsql.Aop.SyncStructureAfter += (s, e) =>
{
Console.WriteLine(e.Identifier + ": " + string.Join(", ", e.EntityTypes.Select(a => a.FullName)) + " " + e.ElapsedMilliseconds + "ms\r\n" + e.Exception?.Message + e.Sql);
};
- Fsql.Aop.CurdBefore = (s, e) =>
+ Fsql.Aop.CurdBefore += (s, e) =>
{
Console.WriteLine(e.Identifier + ": " + e.EntityType.FullName + ", " + e.Sql);
};
- Fsql.Aop.CurdAfter = (s, e) =>
+ Fsql.Aop.CurdAfter += (s, e) =>
{
Console.WriteLine(e.Identifier + ": " + e.EntityType.FullName + " " + e.ElapsedMilliseconds + "ms, " + e.Sql);
};
diff --git a/Examples/restful/Startup.cs b/Examples/restful/Startup.cs
index 6079ae39..240e6286 100644
--- a/Examples/restful/Startup.cs
+++ b/Examples/restful/Startup.cs
@@ -18,7 +18,7 @@ namespace restful
.UseAutoSyncStructure(true)
.Build();
- Fsql.Aop.CurdAfter = (s, e) =>
+ Fsql.Aop.CurdAfter += (s, e) =>
{
if (e.ElapsedMilliseconds > 200)
{
diff --git a/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj b/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
index e78eae61..2a7cc192 100644
--- a/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
+++ b/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
@@ -16,9 +16,6 @@
$(AssemblyName)
true
true
- true
- key.snk
- false
diff --git a/FreeSql.DbContext/DbSet/DbSetAsync.cs b/FreeSql.DbContext/DbSet/DbSetAsync.cs
index df1a2c00..68d6b0bb 100644
--- a/FreeSql.DbContext/DbSet/DbSetAsync.cs
+++ b/FreeSql.DbContext/DbSet/DbSetAsync.cs
@@ -160,7 +160,9 @@ namespace FreeSql
await DbContextExecCommandAsync();
//删除没有保存的数据
var propValEach = GetItemValue(item, prop) as IEnumerable;
- await _db.Orm.Delete
-
+
net40
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 5c768294..08d2c1b3 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -2098,16 +2098,6 @@
从库连接池
-
-
- 监视数据库命令对象(执行前,调试)
-
-
-
-
- 监视数据库命令对象(执行后,用于监视执行性能)
-
-
数据库类型
@@ -2401,46 +2391,66 @@
-
+
可自定义解析表达式
-
+
自定义实体的配置,方便和多个 ORM 共同使用
-
+
自定义实体的属性配置,方便和多个 ORM 共同使用
-
+
增删查改,执行命令之前触发
-
+
增删查改,执行命令完成后触发
-
+
CodeFirst迁移,执行之前触发
-
+
CodeFirst迁移,执行完成触发
-
+
Insert/Update自动值处理
+
+
+ 监视数据库命令对象(执行前,调试)
+
+
+
+
+ 监视数据库命令对象(执行后,用于监视执行性能)
+
+
+
+
+ 跟踪开始
+
+
+
+
+ 跟踪结束
+
+
内置解析功能,可辅助您进行解析
@@ -2586,6 +2596,56 @@
获取实体的属性值,也可以设置实体的属性新值
+
+
+ 标识符,可将 CommandBefore 与 CommandAfter 进行匹配
+
+
+
+
+ 发生的错误
+
+
+
+
+ 执行SQL命令,返回的结果
+
+
+
+
+ 耗时(单位:Ticks)
+
+
+
+
+ 耗时(单位:毫秒)
+
+
+
+
+ 标识符,可将 TraceBeforeEventArgs 与 TraceAfterEventArgs 进行匹配
+
+
+
+
+ 备注
+
+
+
+
+ 发生的错误
+
+
+
+
+ 耗时(单位:Ticks)
+
+
+
+
+ 耗时(单位:毫秒)
+
+
【开发环境必备】自动同步实体结构到数据库,程序运行中检查实体表是否存在,然后创建或修改
diff --git a/FreeSql/FreeSqlBuilder.cs b/FreeSql/FreeSqlBuilder.cs
index 3f62e85a..9309609d 100644
--- a/FreeSql/FreeSqlBuilder.cs
+++ b/FreeSql/FreeSqlBuilder.cs
@@ -248,9 +248,15 @@ namespace FreeSql
ret.CodeFirst.IsNoneCommandParameter = _isNoneCommandParameter;
ret.CodeFirst.IsGenerateCommandParameterWithLambda = _isGenerateCommandParameterWithLambda;
ret.CodeFirst.IsLazyLoading = _isLazyLoading;
- var ado = ret.Ado as Internal.CommonProvider.AdoProvider;
- ado.AopCommandExecuting += _aopCommandExecuting;
- ado.AopCommandExecuted += _aopCommandExecuted;
+
+ ret.Aop.CommandBefore += new EventHandler((s, e) =>
+ {
+ _aopCommandExecuting(e.Command);
+ });
+ ret.Aop.CommandAfter += new EventHandler((s, e) =>
+ {
+ _aopCommandExecuted(e.Command, e.Log);
+ });
//添加实体属性名全局AOP转换处理
if (_entityPropertyConvertType != StringConvertType.None)
diff --git a/FreeSql/Interface/IAdo.cs b/FreeSql/Interface/IAdo.cs
index 7fccbfa2..3d7d60bc 100644
--- a/FreeSql/Interface/IAdo.cs
+++ b/FreeSql/Interface/IAdo.cs
@@ -20,14 +20,6 @@ namespace FreeSql
///
List> SlavePools { get; }
///
- /// 监视数据库命令对象(执行前,调试)
- ///
- Action AopCommandExecuting { get; set; }
- ///
- /// 监视数据库命令对象(执行后,用于监视执行性能)
- ///
- Action AopCommandExecuted { get; set; }
- ///
/// 数据库类型
///
DataType DataType { get; }
diff --git a/FreeSql/Interface/IAop.cs b/FreeSql/Interface/IAop.cs
index 9aeefb8d..b9914ff3 100644
--- a/FreeSql/Interface/IAop.cs
+++ b/FreeSql/Interface/IAop.cs
@@ -15,44 +15,75 @@ namespace FreeSql
///
/// 可自定义解析表达式
///
- EventHandler ParseExpression { get; set; }
+ event EventHandler ParseExpression;
+ EventHandler ParseExpressionHandler { get; }
///
/// 自定义实体的配置,方便和多个 ORM 共同使用
///
- EventHandler ConfigEntity { get; set; }
+ event EventHandler ConfigEntity;
+ EventHandler ConfigEntityHandler { get; }
///
/// 自定义实体的属性配置,方便和多个 ORM 共同使用
///
- EventHandler ConfigEntityProperty { get; set; }
+ event EventHandler ConfigEntityProperty;
+ EventHandler ConfigEntityPropertyHandler { get; }
///
/// 增删查改,执行命令之前触发
///
- EventHandler CurdBefore { get; set; }
+ event EventHandler CurdBefore;
+ EventHandler CurdBeforeHandler { get; }
///
/// 增删查改,执行命令完成后触发
///
- EventHandler CurdAfter { get; set; }
+ event EventHandler CurdAfter;
+ EventHandler CurdAfterHandler { get; }
///
/// CodeFirst迁移,执行之前触发
///
- EventHandler SyncStructureBefore { get; set; }
+ event EventHandler SyncStructureBefore;
+ EventHandler SyncStructureBeforeHandler { get; }
///
/// CodeFirst迁移,执行完成触发
///
- EventHandler SyncStructureAfter { get; set; }
+ event EventHandler SyncStructureAfter;
+ EventHandler SyncStructureAfterHandler { get; }
///
/// Insert/Update自动值处理
///
- EventHandler AuditValue { get; set; }
+ event EventHandler AuditValue;
+ EventHandler AuditValueHandler { get; }
+
+ ///
+ /// 监视数据库命令对象(执行前,调试)
+ ///
+ event EventHandler CommandBefore;
+ EventHandler CommandBeforeHandler { get; }
+ ///
+ /// 监视数据库命令对象(执行后,用于监视执行性能)
+ ///
+ event EventHandler CommandAfter;
+ EventHandler CommandAfterHandler { get; }
+
+ ///
+ /// 跟踪开始
+ ///
+ event EventHandler TraceBefore;
+ EventHandler TraceBeforeHandler { get; }
+ ///
+ /// 跟踪结束
+ ///
+ event EventHandler TraceAfter;
+ EventHandler TraceAfterHandler { get; }
}
}
namespace FreeSql.Aop
{
+ #region ParseExpression
public class ParseExpressionEventArgs : EventArgs
{
public ParseExpressionEventArgs(Expression expression, Func freeParse)
@@ -75,6 +106,9 @@ namespace FreeSql.Aop
///
public string Result { get; set; }
}
+ #endregion
+
+ #region ConfigEntity/Property
public class ConfigEntityEventArgs : EventArgs
{
public ConfigEntityEventArgs(Type entityType)
@@ -119,7 +153,9 @@ namespace FreeSql.Aop
///
public ColumnAttribute ModifyResult { get; }
}
+ #endregion
+ #region CurdBefore/After
public class CurdBeforeEventArgs : EventArgs
{
public CurdBeforeEventArgs(Type entityType, TableInfo table, CurdType curdType, string sql, DbParameter[] dbParms) :
@@ -155,7 +191,7 @@ namespace FreeSql.Aop
///
/// 实体类型的元数据
///
- public TableInfo Table { get; set; }
+ public TableInfo Table { get; }
///
/// 执行的 SQL
///
@@ -183,7 +219,7 @@ namespace FreeSql.Aop
///
/// 执行SQL命令,返回的结果
///
- public object ExecuteResult { get; set; }
+ public object ExecuteResult { get; }
///
/// 耗时(单位:Ticks)
///
@@ -193,7 +229,9 @@ namespace FreeSql.Aop
///
public long ElapsedMilliseconds => this.Stopwatch.ElapsedMilliseconds;
}
+ #endregion
+ #region SyncStructureBefore/After
public class SyncStructureBeforeEventArgs : EventArgs
{
public SyncStructureBeforeEventArgs(Type[] entityTypes) :
@@ -246,7 +284,9 @@ namespace FreeSql.Aop
///
public long ElapsedMilliseconds => this.Stopwatch.ElapsedMilliseconds;
}
+ #endregion
+ #region AuditValue
public class AuditValueEventArgs : EventArgs
{
public AuditValueEventArgs(AuditValueType autoValueType, ColumnInfo column, PropertyInfo property, object value)
@@ -285,4 +325,111 @@ namespace FreeSql.Aop
public bool IsChanged { get; private set; }
}
public enum AuditValueType { Update, Insert }
+ #endregion
+
+ #region CommandBefore/After
+ public class CommandBeforeEventArgs : EventArgs
+ {
+ public CommandBeforeEventArgs(DbCommand command) :
+ this(Guid.NewGuid(), new Stopwatch(), command)
+ {
+ this.Stopwatch.Start();
+ }
+ protected CommandBeforeEventArgs(Guid identifier, Stopwatch stopwatch, DbCommand command)
+ {
+ this.Identifier = identifier;
+ this.Stopwatch = stopwatch;
+ this.Command = command;
+ }
+
+ ///
+ /// 标识符,可将 CommandBefore 与 CommandAfter 进行匹配
+ ///
+ public Guid Identifier { get; protected set; }
+ protected Stopwatch Stopwatch { get; }
+ internal Stopwatch StopwatchInternal => Stopwatch;
+ public DbCommand Command { get; }
+ }
+ public class CommandAfterEventArgs : CommandBeforeEventArgs
+ {
+ public CommandAfterEventArgs(CommandBeforeEventArgs before, Exception exception, string log) :
+ base(before.Identifier, before.StopwatchInternal, before.Command)
+ {
+ this.Exception = exception;
+ this.Log = log;
+ this.Stopwatch.Stop();
+ }
+
+ ///
+ /// 发生的错误
+ ///
+ public Exception Exception { get; }
+ ///
+ /// 执行SQL命令,返回的结果
+ ///
+ public string Log { get; }
+ ///
+ /// 耗时(单位:Ticks)
+ ///
+ public long ElapsedTicks => this.Stopwatch.ElapsedTicks;
+ ///
+ /// 耗时(单位:毫秒)
+ ///
+ public long ElapsedMilliseconds => this.Stopwatch.ElapsedMilliseconds;
+ }
+ #endregion
+
+ #region TraceBefore/After
+ public class TraceBeforeEventArgs : EventArgs
+ {
+ public TraceBeforeEventArgs(string operation, object value) :
+ this(Guid.NewGuid(), new Stopwatch(), operation, value)
+ {
+ this.Stopwatch.Start();
+ }
+ protected TraceBeforeEventArgs(Guid identifier, Stopwatch stopwatch, string operation, object value)
+ {
+ this.Identifier = identifier;
+ this.Stopwatch = stopwatch;
+ this.Operation = operation;
+ this.Value = value;
+ }
+
+ ///
+ /// 标识符,可将 TraceBeforeEventArgs 与 TraceAfterEventArgs 进行匹配
+ ///
+ public Guid Identifier { get; protected set; }
+ protected Stopwatch Stopwatch { get; }
+ internal Stopwatch StopwatchInternal => Stopwatch;
+ public string Operation { get; }
+ public object Value { get; }
+ }
+ public class TraceAfterEventArgs : TraceBeforeEventArgs
+ {
+ public TraceAfterEventArgs(TraceBeforeEventArgs before, string remark, Exception exception) :
+ base(before.Identifier, before.StopwatchInternal, before.Operation, before.Value)
+ {
+ this.Remark = remark;
+ this.Exception = exception;
+ this.Stopwatch.Stop();
+ }
+
+ ///
+ /// 备注
+ ///
+ public string Remark { get; }
+ ///
+ /// 发生的错误
+ ///
+ public Exception Exception { get; }
+ ///
+ /// 耗时(单位:Ticks)
+ ///
+ public long ElapsedTicks => this.Stopwatch.ElapsedTicks;
+ ///
+ /// 耗时(单位:毫秒)
+ ///
+ public long ElapsedMilliseconds => this.Stopwatch.ElapsedMilliseconds;
+ }
+ #endregion
}
\ No newline at end of file
diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs
index 3dc16e12..6a121cdb 100644
--- a/FreeSql/Internal/CommonExpression.cs
+++ b/FreeSql/Internal/CommonExpression.cs
@@ -486,7 +486,9 @@ namespace FreeSql.Internal
if (isLeftMapType) oldMapType = tsc.SetMapTypeReturnOld(leftMapColumn.Attribute.MapType);
var right = ExpressionLambdaToSql(rightExp, tsc);
- if (right != "NULL" && isLeftMapType)
+ if (right != "NULL" && isLeftMapType &&
+ //判断参数化后的bug
+ !(right.Contains('@') || right.Contains('?') || right.Contains(':')))
{
var enumType = leftMapColumn.CsType.NullableTypeOrThis();
if (enumType.IsEnum)
@@ -500,7 +502,9 @@ namespace FreeSql.Internal
{
oldMapType = tsc.SetMapTypeReturnOld(rightMapColumn.Attribute.MapType);
left = ExpressionLambdaToSql(leftExp, tsc);
- if (left != "NULL" && isRightMapType)
+ if (left != "NULL" && isRightMapType &&
+ //判断参数化后的bug
+ !(left.Contains('@') || left.Contains('?') || left.Contains(':')))
{
var enumType = rightMapColumn.CsType.NullableTypeOrThis();
if (enumType.IsEnum)
@@ -560,10 +564,10 @@ namespace FreeSql.Internal
{
if (exp == null) return "";
if (tsc.dbParams != null && tsc.mapColumnTmp != null && tsc.mapColumnTmp.CsType.NullableTypeOrThis() != exp.Type) tsc.SetMapColumnTmp(null);
- if (tsc.isDisableDiyParse == false && _common._orm.Aop.ParseExpression != null)
+ if (tsc.isDisableDiyParse == false && _common._orm.Aop.ParseExpressionHandler != null)
{
var args = new Aop.ParseExpressionEventArgs(exp, ukexp => ExpressionLambdaToSql(ukexp, tsc.CloneDisableDiyParse()));
- _common._orm.Aop.ParseExpression?.Invoke(this, args);
+ _common._orm.Aop.ParseExpressionHandler?.Invoke(this, args);
if (string.IsNullOrEmpty(args.Result) == false) return args.Result;
}
switch (exp.NodeType)
diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
index 11299db6..86f0bb2e 100644
--- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
+++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
@@ -17,10 +17,8 @@ namespace FreeSql.Internal.CommonProvider
protected abstract void ReturnConnection(IObjectPool pool, Object conn, Exception ex);
protected abstract DbCommand CreateCommand();
protected abstract DbParameter[] GetDbParamtersByObject(string sql, object obj);
- public Action AopCommandExecuting { get; set; }
- public Action AopCommandExecuted { get; set; }
- protected bool IsTracePerformance => AopCommandExecuted != null;
+ protected bool IsTracePerformance => _util?._orm?.Aop.CommandAfterHandler != null;
public IObjectPool MasterPool { get; protected set; }
public List> SlavePools { get; } = new List>();
@@ -35,22 +33,22 @@ namespace FreeSql.Internal.CommonProvider
this.DataType = dataType;
}
- void LoggerException(IObjectPool pool, (DbCommand cmd, bool isclose) pc, Exception e, DateTime dt, StringBuilder logtxt, bool isThrowException = true)
+ void LoggerException(IObjectPool pool, (Aop.CommandBeforeEventArgs before, DbCommand cmd, bool isclose) pc, Exception ex, DateTime dt, StringBuilder logtxt, bool isThrowException = true)
{
var cmd = pc.cmd;
if (pc.isclose) pc.cmd.Connection.Close();
if (IsTracePerformance)
{
TimeSpan ts = DateTime.Now.Subtract(dt);
- if (e == null && ts.TotalMilliseconds > 100)
+ if (ex == null && ts.TotalMilliseconds > 100)
Trace.WriteLine(logtxt.Insert(0, $"{pool?.Policy.Name}(执行SQL)语句耗时过长{ts.TotalMilliseconds}ms\r\n{cmd.CommandText}\r\n").ToString());
else
logtxt.Insert(0, $"{pool?.Policy.Name}(执行SQL)耗时{ts.TotalMilliseconds}ms\r\n{cmd.CommandText}\r\n").ToString();
}
- if (e == null)
+ if (ex == null)
{
- AopCommandExecuted?.Invoke(cmd, logtxt.ToString());
+ _util?._orm?.Aop.CommandAfterHandler?.Invoke(_util._orm, new Aop.CommandAfterEventArgs(pc.before, null, logtxt.ToString()));
return;
}
@@ -59,7 +57,7 @@ namespace FreeSql.Internal.CommonProvider
foreach (DbParameter parm in cmd.Parameters)
log.Append(parm.ParameterName.PadRight(20, ' ')).Append(" = ").Append((parm.Value ?? DBNull.Value) == DBNull.Value ? "NULL" : parm.Value).Append("\r\n");
- log.Append(e.Message);
+ log.Append(ex.Message);
Trace.WriteLine(log.ToString());
if (cmd.Transaction != null)
@@ -70,16 +68,16 @@ namespace FreeSql.Internal.CommonProvider
//cmd.Transaction.Rollback();
}
else
- RollbackTransaction();
+ RollbackTransaction(ex);
}
- AopCommandExecuted?.Invoke(cmd, log.ToString());
+ _util?._orm?.Aop.CommandAfterHandler?.Invoke(_util._orm, new Aop.CommandAfterEventArgs(pc.before, null, logtxt.ToString()));
cmd.Parameters.Clear();
if (isThrowException)
{
if (DataType == DataType.Sqlite) cmd.Dispose();
- throw e;
+ throw ex;
}
}
@@ -547,11 +545,14 @@ namespace FreeSql.Internal.CommonProvider
Object conn = null;
var pc = PrepareCommand(connection, transaction, cmdType, cmdText, cmdParms, logtxt);
- if (IsTracePerformance) logtxt.Append("PrepareCommand: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ if (IsTracePerformance)
+ {
+ logtxt.Append("PrepareCommand: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ logtxt_dt = DateTime.Now;
+ }
Exception ex = null;
try
{
- if (IsTracePerformance) logtxt_dt = DateTime.Now;
if (isSlave)
{
//从库查询切换,恢复
@@ -571,7 +572,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (IsTracePerformance) logtxt_dt = DateTime.Now;
ReturnConnection(pool, conn, ex); //pool.Return(conn, ex);
- if (IsTracePerformance) logtxt.Append("ReleaseConnection: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ if (IsTracePerformance) logtxt.Append("Pool.Return: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
}
LoggerException(pool, pc, new Exception($"连接失败,准备切换其他可用服务器"), dt, logtxt, false);
pc.cmd.Parameters.Clear();
@@ -587,43 +588,31 @@ namespace FreeSql.Internal.CommonProvider
}
if (IsTracePerformance)
{
- logtxt.Append("Open: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ logtxt.Append("Pool.Get: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
logtxt_dt = DateTime.Now;
}
using (var dr = pc.cmd.ExecuteReader())
{
- if (IsTracePerformance) logtxt.Append("ExecuteReader: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
int resultIndex = 0;
while (true)
{
while (true)
{
- if (IsTracePerformance) logtxt_dt = DateTime.Now;
bool isread = dr.Read();
- if (IsTracePerformance) logtxt.Append(" dr.Read: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
if (isread == false) break;
if (readerHander != null)
- {
- object[] values = null;
- if (IsTracePerformance)
- {
- logtxt_dt = DateTime.Now;
- values = new object[dr.FieldCount];
- dr.GetValues(values);
- logtxt.Append(" dr.GetValues: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
- logtxt_dt = DateTime.Now;
- }
readerHander(dr, resultIndex);
- if (IsTracePerformance) logtxt.Append(" readerHander: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms (").Append(string.Join(", ", values)).Append(")\r\n");
- }
}
if (++resultIndex >= multipleResult || dr.NextResult() == false) break;
}
- if (IsTracePerformance) logtxt_dt = DateTime.Now;
dr.Close();
}
- if (IsTracePerformance) logtxt.Append("ExecuteReader_dispose: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ if (IsTracePerformance)
+ {
+ logtxt.Append("ExecuteReader: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ logtxt_dt = DateTime.Now;
+ }
}
catch (Exception ex2)
{
@@ -632,9 +621,12 @@ namespace FreeSql.Internal.CommonProvider
if (conn != null)
{
- if (IsTracePerformance) logtxt_dt = DateTime.Now;
ReturnConnection(pool, conn, ex); //pool.Return(conn, ex);
- if (IsTracePerformance) logtxt.Append("ReleaseConnection: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ if (IsTracePerformance)
+ {
+ logtxt.Append("Pool.Return: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ logtxt_dt = DateTime.Now;
+ }
}
LoggerException(pool, pc, ex, dt, logtxt);
pc.cmd.Parameters.Clear();
@@ -735,7 +727,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (IsTracePerformance) logtxt_dt = DateTime.Now;
ReturnConnection(MasterPool, conn, ex); //this.MasterPool.Return(conn, ex);
- if (IsTracePerformance) logtxt.Append("ReleaseConnection: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ if (IsTracePerformance) logtxt.Append("Pool.Return: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
}
LoggerException(this.MasterPool, pc, ex, dt, logtxt);
pc.cmd.Parameters.Clear();
@@ -771,7 +763,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (IsTracePerformance) logtxt_dt = DateTime.Now;
ReturnConnection(MasterPool, conn, ex); //this.MasterPool.Return(conn, ex);
- if (IsTracePerformance) logtxt.Append("ReleaseConnection: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ if (IsTracePerformance) logtxt.Append("Pool.Return: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
}
LoggerException(this.MasterPool, pc, ex, dt, logtxt);
pc.cmd.Parameters.Clear();
@@ -779,7 +771,7 @@ namespace FreeSql.Internal.CommonProvider
return val;
}
- (DbCommand cmd, bool isclose) PrepareCommand(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, DbParameter[] cmdParms, StringBuilder logtxt)
+ (Aop.CommandBeforeEventArgs before, DbCommand cmd, bool isclose) PrepareCommand(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, DbParameter[] cmdParms, StringBuilder logtxt)
{
var dt = DateTime.Now;
DbCommand cmd = CreateCommand();
@@ -800,14 +792,10 @@ namespace FreeSql.Internal.CommonProvider
if (connection == null)
{
var tran = transaction ?? TransactionCurrentThread;
- if (IsTracePerformance) logtxt.Append(" PrepareCommand_part1: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms cmdParms: ").Append(cmd.Parameters.Count).Append("\r\n");
-
if (tran != null && connection == null)
{
- if (IsTracePerformance) dt = DateTime.Now;
cmd.Connection = tran.Connection;
cmd.Transaction = tran;
- if (IsTracePerformance) logtxt.Append(" PrepareCommand_tran!=null: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
}
}
else
@@ -825,11 +813,12 @@ namespace FreeSql.Internal.CommonProvider
}
if (IsTracePerformance) dt = DateTime.Now;
- AutoCommitTransaction();
- if (IsTracePerformance) logtxt.Append(" AutoCommitTransaction: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ CommitTimeoutTransaction();
+ if (IsTracePerformance) logtxt.Append(" CommitTimeoutTransaction: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
- AopCommandExecuting?.Invoke(cmd);
- return (cmd, isclose);
+ var before = new Aop.CommandBeforeEventArgs(cmd);
+ _util?._orm?.Aop.CommandBeforeHandler?.Invoke(_util._orm, before);
+ return (before, cmd, isclose);
}
}
}
diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs
index 694ac18c..cc93f542 100644
--- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs
+++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs
@@ -476,11 +476,14 @@ namespace FreeSql.Internal.CommonProvider
Object conn = null;
var pc = await PrepareCommandAsync(connection, transaction, cmdType, cmdText, cmdParms, logtxt);
- if (IsTracePerformance) logtxt.Append("PrepareCommandAsync: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ if (IsTracePerformance)
+ {
+ logtxt.Append("PrepareCommand: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ logtxt_dt = DateTime.Now;
+ }
Exception ex = null;
try
{
- if (IsTracePerformance) logtxt_dt = DateTime.Now;
if (isSlave)
{
//从库查询切换,恢复
@@ -500,7 +503,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (IsTracePerformance) logtxt_dt = DateTime.Now;
ReturnConnection(pool, conn, ex); //pool.Return(conn, ex);
- if (IsTracePerformance) logtxt.Append("ReleaseConnection: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ if (IsTracePerformance) logtxt.Append("Pool.Return: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
}
LoggerException(pool, pc, new Exception($"连接失败,准备切换其他可用服务器"), dt, logtxt, false);
pc.cmd.Parameters.Clear();
@@ -516,43 +519,31 @@ namespace FreeSql.Internal.CommonProvider
}
if (IsTracePerformance)
{
- logtxt.Append("OpenAsync: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ logtxt.Append("Pool.Get: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
logtxt_dt = DateTime.Now;
}
using (var dr = await pc.cmd.ExecuteReaderAsync())
{
- if (IsTracePerformance) logtxt.Append("ExecuteReaderAsync: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
int resultIndex = 0;
while (true)
{
while (true)
{
- if (IsTracePerformance) logtxt_dt = DateTime.Now;
bool isread = await dr.ReadAsync();
- if (IsTracePerformance) logtxt.Append(" dr.ReadAsync: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
if (isread == false) break;
if (readerHander != null)
- {
- object[] values = null;
- if (IsTracePerformance)
- {
- logtxt_dt = DateTime.Now;
- values = new object[dr.FieldCount];
- for (int a = 0; a < values.Length; a++) if (!await dr.IsDBNullAsync(a)) values[a] = await dr.GetFieldValueAsync(a);
- logtxt.Append(" dr.GetValues: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
- logtxt_dt = DateTime.Now;
- }
await readerHander(dr, resultIndex);
- if (IsTracePerformance) logtxt.Append(" readerHanderAsync: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms (").Append(string.Join(", ", values)).Append(")\r\n");
- }
}
if (++resultIndex >= multipleResult || dr.NextResult() == false) break;
}
- if (IsTracePerformance) logtxt_dt = DateTime.Now;
dr.Close();
}
- if (IsTracePerformance) logtxt.Append("ExecuteReaderAsync_dispose: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ if (IsTracePerformance)
+ {
+ logtxt.Append("ExecuteReader: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ logtxt_dt = DateTime.Now;
+ }
}
catch (Exception ex2)
{
@@ -563,7 +554,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (IsTracePerformance) logtxt_dt = DateTime.Now;
ReturnConnection(pool, conn, ex); //pool.Return(conn, ex);
- if (IsTracePerformance) logtxt.Append("ReleaseConnection: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ if (IsTracePerformance) logtxt.Append("Pool.Return: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
}
LoggerException(pool, pc, ex, dt, logtxt);
pc.cmd.Parameters.Clear();
@@ -665,7 +656,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (IsTracePerformance) logtxt_dt = DateTime.Now;
ReturnConnection(MasterPool, conn, ex); //this.MasterPool.Return(conn, ex);
- if (IsTracePerformance) logtxt.Append("ReleaseConnection: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ if (IsTracePerformance) logtxt.Append("Pool.Return: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
}
LoggerException(this.MasterPool, pc, ex, dt, logtxt);
pc.cmd.Parameters.Clear();
@@ -701,7 +692,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (IsTracePerformance) logtxt_dt = DateTime.Now;
ReturnConnection(MasterPool, conn, ex); //this.MasterPool.Return(conn, ex);
- if (IsTracePerformance) logtxt.Append("ReleaseConnection: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
+ if (IsTracePerformance) logtxt.Append("Pool.Return: ").Append(DateTime.Now.Subtract(logtxt_dt).TotalMilliseconds).Append("ms Total: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms");
}
LoggerException(this.MasterPool, pc, ex, dt, logtxt);
pc.cmd.Parameters.Clear();
@@ -709,7 +700,7 @@ namespace FreeSql.Internal.CommonProvider
return val;
}
- async Task<(DbCommand cmd, bool isclose)> PrepareCommandAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, DbParameter[] cmdParms, StringBuilder logtxt)
+ async Task<(Aop.CommandBeforeEventArgs before, DbCommand cmd, bool isclose)> PrepareCommandAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, DbParameter[] cmdParms, StringBuilder logtxt)
{
DateTime dt = DateTime.Now;
DbCommand cmd = CreateCommand();
@@ -733,10 +724,8 @@ namespace FreeSql.Internal.CommonProvider
if (tran != null)
{
- if (IsTracePerformance) dt = DateTime.Now;
cmd.Connection = tran.Connection;
cmd.Transaction = tran;
- if (IsTracePerformance) logtxt.Append(" PrepareCommandAsync_tran!=null: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
}
}
else
@@ -745,7 +734,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (IsTracePerformance) dt = DateTime.Now;
await connection.OpenAsync();
- if (IsTracePerformance) logtxt.Append(" PrepareCommand_ConnectionOpenAsync: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
+ if (IsTracePerformance) logtxt.Append(" PrepareCommand_ConnectionOpen: ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms\r\n");
isclose = true;
}
cmd.Connection = connection;
@@ -753,10 +742,9 @@ namespace FreeSql.Internal.CommonProvider
cmd.Transaction = transaction;
}
- if (IsTracePerformance) logtxt.Append(" PrepareCommandAsync ").Append(DateTime.Now.Subtract(dt).TotalMilliseconds).Append("ms cmdParms: ").Append(cmd.Parameters.Count).Append("\r\n");
-
- AopCommandExecuting?.Invoke(cmd);
- return (cmd, isclose);
+ var before = new Aop.CommandBeforeEventArgs(cmd);
+ _util?._orm?.Aop.CommandBeforeHandler?.Invoke(_util._orm, before);
+ return (before, cmd, isclose);
}
}
}
diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderTransaction.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderTransaction.cs
index df0b0741..60133ed4 100644
--- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderTransaction.cs
+++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderTransaction.cs
@@ -15,6 +15,7 @@ namespace FreeSql.Internal.CommonProvider
class Transaction2
{
+ internal Aop.TraceBeforeEventArgs AopBefore;
internal Object Conn;
internal DbTransaction Transaction;
internal DateTime RunTime;
@@ -33,6 +34,7 @@ namespace FreeSql.Internal.CommonProvider
private object _trans_lock = new object();
public DbTransaction TransactionCurrentThread => _trans.TryGetValue(Thread.CurrentThread.ManagedThreadId, out var conn) && conn.Transaction?.Connection != null ? conn.Transaction : null;
+ public Aop.TraceBeforeEventArgs TransactionCurrentThreadAopBefore => _trans.TryGetValue(Thread.CurrentThread.ManagedThreadId, out var conn) && conn.Transaction?.Connection != null ? conn.AopBefore : null;
public void BeginTransaction(TimeSpan timeout, IsolationLevel? isolationLevel)
{
@@ -41,16 +43,21 @@ namespace FreeSql.Internal.CommonProvider
int tid = Thread.CurrentThread.ManagedThreadId;
Transaction2 tran = null;
Object conn = null;
+ var before = new Aop.TraceBeforeEventArgs("ThreadTransaction", isolationLevel);
+ _util?._orm?.Aop.TraceBeforeHandler?.Invoke(this, before);
try
{
conn = MasterPool.Get();
tran = new Transaction2(conn, isolationLevel == null ? conn.Value.BeginTransaction() : conn.Value.BeginTransaction(isolationLevel.Value), timeout);
+ tran.AopBefore = before;
}
catch (Exception ex)
{
Trace.WriteLine($"数据库出错(开启事务){ex.Message} \r\n{ex.StackTrace}");
MasterPool.Return(conn);
+ var after = new Aop.TraceAfterEventArgs(before, "", ex);
+ _util?._orm?.Aop.TraceAfterHandler?.Invoke(this, after);
throw ex;
}
if (_trans.ContainsKey(tid)) CommitTransaction();
@@ -59,17 +66,17 @@ namespace FreeSql.Internal.CommonProvider
_trans.TryAdd(tid, tran);
}
- private void AutoCommitTransaction()
+ private void CommitTimeoutTransaction()
{
if (_trans.Count > 0)
{
Transaction2[] trans = null;
lock (_trans_lock)
trans = _trans.Values.Where(st2 => DateTime.Now.Subtract(st2.RunTime) > st2.Timeout).ToArray();
- foreach (Transaction2 tran in trans) CommitTransaction(true, tran);
+ foreach (Transaction2 tran in trans) CommitTransaction(true, tran, null, "Timeout自动提交");
}
}
- private void CommitTransaction(bool isCommit, Transaction2 tran)
+ private void CommitTransaction(bool isCommit, Transaction2 tran, Exception rollbackException, string remark = null)
{
if (tran == null || tran.Transaction == null || tran.Transaction.Connection == null) return;
@@ -79,29 +86,34 @@ namespace FreeSql.Internal.CommonProvider
_trans.TryRemove(tran.Conn.LastGetThreadId, out var oldtran);
Exception ex = null;
- var f001 = isCommit ? "提交" : "回滚";
+ if (string.IsNullOrEmpty(remark)) remark = isCommit ? "提交" : "回滚";
try
{
- Trace.WriteLine($"线程{tran.Conn.LastGetThreadId}事务{f001}");
+ Trace.WriteLine($"线程{tran.Conn.LastGetThreadId}事务{remark}");
if (isCommit) tran.Transaction.Commit();
else tran.Transaction.Rollback();
}
catch (Exception ex2)
{
ex = ex2;
- Trace.WriteLine($"数据库出错({f001}事务):{ex.Message} {ex.StackTrace}");
+ Trace.WriteLine($"数据库出错({remark}事务):{ex.Message} {ex.StackTrace}");
}
finally
{
ReturnConnection(MasterPool, tran.Conn, ex); //MasterPool.Return(tran.Conn, ex);
+
+ var after = new Aop.TraceAfterEventArgs(tran.AopBefore, remark, ex ?? rollbackException);
+ _util?._orm?.Aop.TraceAfterHandler?.Invoke(this, after);
}
}
- private void CommitTransaction(bool isCommit)
+ public void CommitTransaction()
{
- if (_trans.TryGetValue(Thread.CurrentThread.ManagedThreadId, out var tran)) CommitTransaction(isCommit, tran);
+ if (_trans.TryGetValue(Thread.CurrentThread.ManagedThreadId, out var tran)) CommitTransaction(true, tran, null);
+ }
+ public void RollbackTransaction(Exception ex)
+ {
+ if (_trans.TryGetValue(Thread.CurrentThread.ManagedThreadId, out var tran)) CommitTransaction(false, tran, ex);
}
- public void CommitTransaction() => CommitTransaction(true);
- public void RollbackTransaction() => CommitTransaction(false);
public void Transaction(Action handler) => TransactionInternal(null, TimeSpan.FromSeconds(60), handler);
public void Transaction(TimeSpan timeout, Action handler) => TransactionInternal(null, timeout, handler);
@@ -117,7 +129,7 @@ namespace FreeSql.Internal.CommonProvider
}
catch (Exception ex)
{
- RollbackTransaction();
+ RollbackTransaction(ex);
throw ex;
}
}
@@ -132,7 +144,7 @@ namespace FreeSql.Internal.CommonProvider
Transaction2[] trans = null;
lock (_trans_lock)
trans = _trans.Values.ToArray();
- foreach (Transaction2 tran in trans) CommitTransaction(false, tran);
+ foreach (Transaction2 tran in trans) CommitTransaction(false, tran, null, "Dispose自动提交");
}
catch { }
diff --git a/FreeSql/Internal/CommonProvider/AopProvider.cs b/FreeSql/Internal/CommonProvider/AopProvider.cs
index 168a0dcf..1f426e04 100644
--- a/FreeSql/Internal/CommonProvider/AopProvider.cs
+++ b/FreeSql/Internal/CommonProvider/AopProvider.cs
@@ -8,13 +8,38 @@ namespace FreeSql.Internal.CommonProvider
{
public class AopProvider : IAop
{
- public EventHandler ParseExpression { get; set; }
- public EventHandler ConfigEntity { get; set; }
- public EventHandler ConfigEntityProperty { get; set; }
- public EventHandler CurdBefore { get; set; }
- public EventHandler CurdAfter { get; set; }
- public EventHandler SyncStructureBefore { get; set; }
- public EventHandler SyncStructureAfter { get; set; }
- public EventHandler AuditValue { get; set; }
+ public event EventHandler ParseExpression;
+ public event EventHandler ConfigEntity;
+ public event EventHandler ConfigEntityProperty;
+
+ public event EventHandler CurdBefore;
+ public event EventHandler CurdAfter;
+ public event EventHandler SyncStructureBefore;
+ public event EventHandler SyncStructureAfter;
+
+ public event EventHandler AuditValue;
+
+ public event EventHandler CommandBefore;
+ public event EventHandler CommandAfter;
+ public event EventHandler TraceBefore;
+ public event EventHandler TraceAfter;
+
+ //------------- Handler
+
+ public EventHandler ParseExpressionHandler => ParseExpression;
+ public EventHandler ConfigEntityHandler => ConfigEntity;
+ public EventHandler ConfigEntityPropertyHandler => ConfigEntityProperty;
+
+ public EventHandler CurdBeforeHandler => CurdBefore;
+ public EventHandler CurdAfterHandler => CurdAfter;
+ public EventHandler SyncStructureBeforeHandler => SyncStructureBefore;
+ public EventHandler SyncStructureAfterHandler => SyncStructureAfter;
+
+ public EventHandler AuditValueHandler => AuditValue;
+
+ public EventHandler CommandBeforeHandler => CommandBefore;
+ public EventHandler CommandAfterHandler => CommandAfter;
+ public EventHandler TraceBeforeHandler => TraceBefore;
+ public EventHandler TraceAfterHandler => TraceAfter;
}
}
diff --git a/FreeSql/Internal/CommonProvider/CodeFirstProvider.cs b/FreeSql/Internal/CommonProvider/CodeFirstProvider.cs
index cf1cf470..83cdd9e6 100644
--- a/FreeSql/Internal/CommonProvider/CodeFirstProvider.cs
+++ b/FreeSql/Internal/CommonProvider/CodeFirstProvider.cs
@@ -84,7 +84,7 @@ namespace FreeSql.Internal.CommonProvider
.Select(a => (a.entityType, GetTableNameLowerOrUpper(a.tableName))).ToArray();
if (syncObjects.Any() == false) return false;
var before = new Aop.SyncStructureBeforeEventArgs(syncObjects.Select(a => a.entityType).ToArray());
- _orm.Aop.SyncStructureBefore?.Invoke(this, before);
+ _orm.Aop.SyncStructureBeforeHandler?.Invoke(this, before);
Exception exception = null;
string ddl = null;
try
@@ -110,7 +110,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.SyncStructureAfterEventArgs(before, ddl, exception);
- _orm.Aop.SyncStructureAfter?.Invoke(this, after);
+ _orm.Aop.SyncStructureAfterHandler?.Invoke(this, after);
}
}
diff --git a/FreeSql/Internal/CommonProvider/DeleteProvider.cs b/FreeSql/Internal/CommonProvider/DeleteProvider.cs
index bacd113f..516b75f0 100644
--- a/FreeSql/Internal/CommonProvider/DeleteProvider.cs
+++ b/FreeSql/Internal/CommonProvider/DeleteProvider.cs
@@ -63,7 +63,7 @@ namespace FreeSql.Internal.CommonProvider
if (string.IsNullOrEmpty(sql)) return 0;
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -78,7 +78,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return affrows;
diff --git a/FreeSql/Internal/CommonProvider/DeleteProviderAsync.cs b/FreeSql/Internal/CommonProvider/DeleteProviderAsync.cs
index 9860c999..45afc9d5 100644
--- a/FreeSql/Internal/CommonProvider/DeleteProviderAsync.cs
+++ b/FreeSql/Internal/CommonProvider/DeleteProviderAsync.cs
@@ -19,7 +19,7 @@ namespace FreeSql.Internal.CommonProvider
if (string.IsNullOrEmpty(sql)) return 0;
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -34,7 +34,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return affrows;
diff --git a/FreeSql/Internal/CommonProvider/InsertProvider.cs b/FreeSql/Internal/CommonProvider/InsertProvider.cs
index 34bbeb15..794bd98e 100644
--- a/FreeSql/Internal/CommonProvider/InsertProvider.cs
+++ b/FreeSql/Internal/CommonProvider/InsertProvider.cs
@@ -121,7 +121,7 @@ namespace FreeSql.Internal.CommonProvider
source = source.Where(a => a != null).ToList();
AuditDataValue(this, source, _orm, _table, _auditValueChangedDict);
_source.AddRange(source);
-
+
}
return this;
}
@@ -151,10 +151,10 @@ namespace FreeSql.Internal.CommonProvider
}
}
}
- if (orm.Aop.AuditValue != null)
+ if (orm.Aop.AuditValueHandler != null)
{
var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Insert, col, table.Properties[col.CsName], val);
- orm.Aop.AuditValue(sender, auditArgs);
+ orm.Aop.AuditValueHandler(sender, auditArgs);
if (auditArgs.IsChanged)
{
col.SetMapValue(data, val = auditArgs.Value);
@@ -208,35 +208,55 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null || _batchAutoTransaction == false)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteAffrows", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- ret += this.RawExecuteAffrows();
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret += this.RawExecuteAffrows();
+ }
+ }
+ else
+ {
+ using (var conn = _orm.Ado.MasterPool.Get())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret += this.RawExecuteAffrows();
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = _orm.Ado.MasterPool.Get())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- ret += this.RawExecuteAffrows();
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -260,37 +280,57 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null || _batchAutoTransaction == false)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteIdentity", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- if (a < ss.Length - 1) this.RawExecuteAffrows();
- else ret = this.RawExecuteIdentity();
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ if (a < ss.Length - 1) this.RawExecuteAffrows();
+ else ret = this.RawExecuteIdentity();
+ }
+ }
+ else
+ {
+ using (var conn = _orm.Ado.MasterPool.Get())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ if (a < ss.Length - 1) this.RawExecuteAffrows();
+ else ret = this.RawExecuteIdentity();
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = _orm.Ado.MasterPool.Get())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- if (a < ss.Length - 1) this.RawExecuteAffrows();
- else ret = this.RawExecuteIdentity();
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -314,35 +354,55 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null || _batchAutoTransaction == false)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteInserted", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- ret.AddRange(this.RawExecuteInserted());
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret.AddRange(this.RawExecuteInserted());
+ }
+ }
+ else
+ {
+ using (var conn = _orm.Ado.MasterPool.Get())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret.AddRange(this.RawExecuteInserted());
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = _orm.Ado.MasterPool.Get())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- ret.AddRange(this.RawExecuteInserted());
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -353,7 +413,7 @@ namespace FreeSql.Internal.CommonProvider
{
var sql = ToSql();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -368,7 +428,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return affrows;
}
@@ -507,4 +567,3 @@ namespace FreeSql.Internal.CommonProvider
}
}
}
-
diff --git a/FreeSql/Internal/CommonProvider/InsertProviderAsync.cs b/FreeSql/Internal/CommonProvider/InsertProviderAsync.cs
index 14c5cff7..0f6d77d1 100644
--- a/FreeSql/Internal/CommonProvider/InsertProviderAsync.cs
+++ b/FreeSql/Internal/CommonProvider/InsertProviderAsync.cs
@@ -34,35 +34,55 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteAffrowsAsync", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- ret += await this.RawExecuteAffrowsAsync();
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret += await this.RawExecuteAffrowsAsync();
+ }
+ }
+ else
+ {
+ using (var conn = await _orm.Ado.MasterPool.GetAsync())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret += await this.RawExecuteAffrowsAsync();
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = await _orm.Ado.MasterPool.GetAsync())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- ret += await this.RawExecuteAffrowsAsync();
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -86,42 +106,62 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteIdentityAsync", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- if (a < ss.Length - 1) await this.RawExecuteAffrowsAsync();
- else ret = await this.RawExecuteIdentityAsync();
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ if (a < ss.Length - 1) await this.RawExecuteAffrowsAsync();
+ else ret = await this.RawExecuteIdentityAsync();
+ }
+ }
+ else
+ {
+ using (var conn = await _orm.Ado.MasterPool.GetAsync())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ if (a < ss.Length - 1) await this.RawExecuteAffrowsAsync();
+ else ret = await this.RawExecuteIdentityAsync();
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = await _orm.Ado.MasterPool.GetAsync())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- if (a < ss.Length - 1) await this.RawExecuteAffrowsAsync();
- else ret = await this.RawExecuteIdentityAsync();
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
}
-
+
async protected Task> SplitExecuteInsertedAsync(int valuesLimit, int parameterLimit)
{
var ss = SplitSource(valuesLimit, parameterLimit);
@@ -140,35 +180,55 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteInsertedAsync", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- ret.AddRange(await this.RawExecuteInsertedAsync());
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret.AddRange(await this.RawExecuteInsertedAsync());
+ }
+ }
+ else
+ {
+ using (var conn = await _orm.Ado.MasterPool.GetAsync())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret.AddRange(await this.RawExecuteInsertedAsync());
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = await _orm.Ado.MasterPool.GetAsync())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- ret.AddRange(await this.RawExecuteInsertedAsync());
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -178,7 +238,7 @@ namespace FreeSql.Internal.CommonProvider
{
var sql = ToSql();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -193,7 +253,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return affrows;
}
@@ -207,4 +267,3 @@ namespace FreeSql.Internal.CommonProvider
#endif
}
}
-
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
index 53e1acae..3915bb22 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
@@ -299,7 +299,7 @@ namespace FreeSql.Internal.CommonProvider
var sql = this.ToSql(field);
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
DataTable ret = null;
Exception exception = null;
try
@@ -314,7 +314,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -325,7 +325,7 @@ namespace FreeSql.Internal.CommonProvider
var type = typeof(TTuple);
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
var flagStr = $"ToListField:{field}";
Exception exception = null;
@@ -345,7 +345,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -353,7 +353,7 @@ namespace FreeSql.Internal.CommonProvider
{
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -377,7 +377,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
foreach (var include in _includeToList) include?.Invoke(ret);
_trackToList?.Invoke(ret);
@@ -403,7 +403,7 @@ namespace FreeSql.Internal.CommonProvider
{
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
var retCount = 0;
Exception exception = null;
@@ -444,7 +444,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, retCount);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
if (ret.Any() || checkDoneTimes == 0)
{
@@ -492,7 +492,7 @@ namespace FreeSql.Internal.CommonProvider
var type = typeof(TReturn);
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -514,7 +514,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
if (typeof(TReturn) == typeof(T1))
foreach (var include in _includeToList) include?.Invoke(ret);
@@ -1082,7 +1082,7 @@ namespace FreeSql.Internal.CommonProvider
var sql = this.InternalToSql(select);
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
DataTable ret = null;
Exception exception = null;
try
@@ -1097,7 +1097,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -1142,7 +1142,7 @@ namespace FreeSql.Internal.CommonProvider
var sql = this.ToSql(field);
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
DataTable ret = null;
Exception exception = null;
try
@@ -1157,7 +1157,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -1168,7 +1168,7 @@ namespace FreeSql.Internal.CommonProvider
var type = typeof(TTuple);
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
var flagStr = $"ToListField:{field}";
Exception exception = null;
@@ -1189,7 +1189,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -1198,7 +1198,7 @@ namespace FreeSql.Internal.CommonProvider
{
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -1223,7 +1223,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
foreach (var include in _includeToListAsync) await include?.Invoke(ret);
_trackToList?.Invoke(ret);
@@ -1265,7 +1265,7 @@ namespace FreeSql.Internal.CommonProvider
var type = typeof(TReturn);
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -1288,7 +1288,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
if (typeof(TReturn) == typeof(T1))
foreach (var include in _includeToListAsync) await include?.Invoke(ret);
@@ -1328,7 +1328,7 @@ namespace FreeSql.Internal.CommonProvider
var sql = this.InternalToSql(select);
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
DataTable ret = null;
Exception exception = null;
try
@@ -1343,7 +1343,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs
index ce44bcba..629c4c63 100644
--- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs
+++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs
@@ -150,35 +150,55 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null || _batchAutoTransaction == false)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteAffrows", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- ret += this.RawExecuteAffrows();
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret += this.RawExecuteAffrows();
+ }
+ }
+ else
+ {
+ using (var conn = _orm.Ado.MasterPool.Get())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret += this.RawExecuteAffrows();
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = _orm.Ado.MasterPool.Get())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- ret += this.RawExecuteAffrows();
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -197,35 +217,55 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null || _batchAutoTransaction == false)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteUpdated", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- ret.AddRange(this.RawExecuteUpdated());
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret.AddRange(this.RawExecuteUpdated());
+ }
+ }
+ else
+ {
+ using (var conn = _orm.Ado.MasterPool.Get())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret.AddRange(this.RawExecuteUpdated());
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = _orm.Ado.MasterPool.Get())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- ret.AddRange(this.RawExecuteUpdated());
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -238,7 +278,7 @@ namespace FreeSql.Internal.CommonProvider
if (string.IsNullOrEmpty(sql)) return 0;
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -254,7 +294,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return affrows;
}
@@ -289,7 +329,7 @@ namespace FreeSql.Internal.CommonProvider
public static void AuditDataValue(object sender, IEnumerable data, IFreeSql orm, TableInfo table, Dictionary changedDict)
{
if (data?.Any() != true) return;
- if (orm.Aop.AuditValue == null) return;
+ if (orm.Aop.AuditValueHandler == null) return;
foreach (var d in data)
{
if (d == null) continue;
@@ -297,7 +337,7 @@ namespace FreeSql.Internal.CommonProvider
{
object val = col.GetMapValue(d);
var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Update, col, table.Properties[col.CsName], val);
- orm.Aop.AuditValue(sender, auditArgs);
+ orm.Aop.AuditValueHandler(sender, auditArgs);
if (auditArgs.IsChanged)
{
col.SetMapValue(d, val = auditArgs.Value);
@@ -309,13 +349,13 @@ namespace FreeSql.Internal.CommonProvider
}
public static void AuditDataValue(object sender, T1 data, IFreeSql orm, TableInfo table, Dictionary changedDict)
{
- if (orm.Aop.AuditValue == null) return;
+ if (orm.Aop.AuditValueHandler == null) return;
if (data == null) return;
foreach (var col in table.Columns.Values)
{
object val = col.GetMapValue(data);
var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Update, col, table.Properties[col.CsName], val);
- orm.Aop.AuditValue(sender, auditArgs);
+ orm.Aop.AuditValueHandler(sender, auditArgs);
if (auditArgs.IsChanged)
{
col.SetMapValue(data, val = auditArgs.Value);
@@ -605,7 +645,7 @@ namespace FreeSql.Internal.CommonProvider
else if (_source.Count > 1)
{ //批量保存 Source
if (_table.Primarys.Any() == false) return null;
-
+
var caseWhen = new StringBuilder();
caseWhen.Append("CASE ");
ToSqlCase(caseWhen, _table.Primarys);
@@ -698,4 +738,4 @@ namespace FreeSql.Internal.CommonProvider
return sb.ToString();
}
}
-}
\ No newline at end of file
+}
diff --git a/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs b/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs
index 5d2767f0..87ca9d41 100644
--- a/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs
+++ b/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs
@@ -30,35 +30,55 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteAffrowsAsync", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- ret += await this.RawExecuteAffrowsAsync();
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret += await this.RawExecuteAffrowsAsync();
+ }
+ }
+ else
+ {
+ using (var conn = await _orm.Ado.MasterPool.GetAsync())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret += await this.RawExecuteAffrowsAsync();
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = await _orm.Ado.MasterPool.GetAsync())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- ret += await this.RawExecuteAffrowsAsync();
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -76,35 +96,55 @@ namespace FreeSql.Internal.CommonProvider
if (_transaction == null)
this.WithTransaction(_orm.Ado.TransactionCurrentThread);
- if (_transaction != null)
+ var before = new Aop.TraceBeforeEventArgs("SplitExecuteUpdatedAsync", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, before);
+ Exception exception = null;
+ try
{
- for (var a = 0; a < ss.Length; a++)
+ if (_transaction != null || _batchAutoTransaction == false)
{
- _source = ss[a];
- ret.AddRange(await this.RawExecuteUpdatedAsync());
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret.AddRange(await this.RawExecuteUpdatedAsync());
+ }
+ }
+ else
+ {
+ using (var conn = await _orm.Ado.MasterPool.GetAsync())
+ {
+ _transaction = conn.Value.BeginTransaction();
+ var transBefore = new Aop.TraceBeforeEventArgs("BeginTransaction", null);
+ _orm.Aop.TraceBeforeHandler?.Invoke(this, transBefore);
+ try
+ {
+ for (var a = 0; a < ss.Length; a++)
+ {
+ _source = ss[a];
+ ret.AddRange(await this.RawExecuteUpdatedAsync());
+ }
+ _transaction.Commit();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "提交", null));
+ }
+ catch (Exception ex)
+ {
+ _transaction.Rollback();
+ _orm.Aop.TraceAfterHandler?.Invoke(this, new Aop.TraceAfterEventArgs(transBefore, "回滚", ex));
+ throw ex;
+ }
+ _transaction = null;
+ }
}
}
- else
+ catch (Exception ex)
{
- using (var conn = await _orm.Ado.MasterPool.GetAsync())
- {
- _transaction = conn.Value.BeginTransaction();
- try
- {
- for (var a = 0; a < ss.Length; a++)
- {
- _source = ss[a];
- ret.AddRange(await this.RawExecuteUpdatedAsync());
- }
- _transaction.Commit();
- }
- catch
- {
- _transaction.Rollback();
- throw;
- }
- _transaction = null;
- }
+ exception = ex;
+ throw ex;
+ }
+ finally
+ {
+ var after = new Aop.TraceAfterEventArgs(before, null, exception);
+ _orm.Aop.TraceAfterHandler?.Invoke(this, after);
}
ClearData();
return ret;
@@ -116,7 +156,7 @@ namespace FreeSql.Internal.CommonProvider
if (string.IsNullOrEmpty(sql)) return 0;
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -132,7 +172,7 @@ namespace FreeSql.Internal.CommonProvider
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return affrows;
}
@@ -142,4 +182,4 @@ namespace FreeSql.Internal.CommonProvider
public abstract Task> ExecuteUpdatedAsync();
#endif
}
-}
\ No newline at end of file
+}
diff --git a/FreeSql/Internal/CommonUtils.cs b/FreeSql/Internal/CommonUtils.cs
index f695b8aa..cbab8e0a 100644
--- a/FreeSql/Internal/CommonUtils.cs
+++ b/FreeSql/Internal/CommonUtils.cs
@@ -100,10 +100,10 @@ namespace FreeSql.Internal
public TableAttribute GetEntityTableAttribute(Type type)
{
TableAttribute attr = null;
- if (_orm.Aop.ConfigEntity != null)
+ if (_orm.Aop.ConfigEntityHandler != null)
{
var aope = new Aop.ConfigEntityEventArgs(type);
- _orm.Aop.ConfigEntity(_orm, aope);
+ _orm.Aop.ConfigEntityHandler(_orm, aope);
attr = aope.ModifyResult;
}
if (attr == null) attr = new TableAttribute();
@@ -130,10 +130,10 @@ namespace FreeSql.Internal
public ColumnAttribute GetEntityColumnAttribute(Type type, PropertyInfo proto)
{
ColumnAttribute attr = null;
- if (_orm.Aop.ConfigEntityProperty != null)
+ if (_orm.Aop.ConfigEntityPropertyHandler != null)
{
var aope = new Aop.ConfigEntityPropertyEventArgs(type, proto);
- _orm.Aop.ConfigEntityProperty(_orm, aope);
+ _orm.Aop.ConfigEntityPropertyHandler(_orm, aope);
attr = aope.ModifyResult;
}
if (attr == null) attr = new ColumnAttribute();
@@ -219,10 +219,10 @@ namespace FreeSql.Internal
public IndexAttribute[] GetEntityIndexAttribute(Type type)
{
var ret = new Dictionary();
- if (_orm.Aop.ConfigEntity != null)
+ if (_orm.Aop.ConfigEntityHandler != null)
{
var aope = new Aop.ConfigEntityEventArgs(type);
- _orm.Aop.ConfigEntity(_orm, aope);
+ _orm.Aop.ConfigEntityHandler(_orm, aope);
foreach (var idxattr in aope.ModifyIndexResult)
if (!string.IsNullOrEmpty(idxattr.Name) && !string.IsNullOrEmpty(idxattr.Fields))
{
diff --git a/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessInsert.cs b/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessInsert.cs
index 1ab68770..012931a7 100644
--- a/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessInsert.cs
+++ b/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessInsert.cs
@@ -31,7 +31,7 @@ namespace FreeSql.MsAccess.Curd
{
var sql = this.ToSql();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -46,7 +46,7 @@ namespace FreeSql.MsAccess.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return affrows;
}
@@ -56,7 +56,7 @@ namespace FreeSql.MsAccess.Curd
if (string.IsNullOrEmpty(sql)) return 0;
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, string.Concat(sql, "; SELECT @@identity;"), _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
var isUseConnection = _connection != null;
@@ -86,7 +86,7 @@ namespace FreeSql.MsAccess.Curd
{
if (isUseConnection == false) _connection = null;
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -110,7 +110,7 @@ namespace FreeSql.MsAccess.Curd
{
var sql = this.ToSql();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -125,7 +125,7 @@ namespace FreeSql.MsAccess.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return affrows;
}
@@ -135,7 +135,7 @@ namespace FreeSql.MsAccess.Curd
if (string.IsNullOrEmpty(sql)) return 0;
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, string.Concat(sql, "; SELECT @@identity;"), _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
var isUseConnection = _connection != null;
@@ -165,7 +165,7 @@ namespace FreeSql.MsAccess.Curd
{
if (isUseConnection == false) _connection = null;
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlDelete.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlDelete.cs
index 60949a68..296a6fd3 100644
--- a/Providers/FreeSql.Provider.MySql/Curd/MySqlDelete.cs
+++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlDelete.cs
@@ -33,7 +33,7 @@ namespace FreeSql.MySql.Curd
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -48,7 +48,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
@@ -74,7 +74,7 @@ namespace FreeSql.MySql.Curd
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -89,7 +89,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlInsert.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlInsert.cs
index f84783fe..190e6b7e 100644
--- a/Providers/FreeSql.Provider.MySql/Curd/MySqlInsert.cs
+++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlInsert.cs
@@ -48,7 +48,7 @@ namespace FreeSql.MySql.Curd
sql = string.Concat(sql, "; SELECT LAST_INSERT_ID();");
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -63,7 +63,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -84,7 +84,7 @@ namespace FreeSql.MySql.Curd
}
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -99,7 +99,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -117,7 +117,7 @@ namespace FreeSql.MySql.Curd
sql = string.Concat(sql, "; SELECT LAST_INSERT_ID();");
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -132,7 +132,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -153,7 +153,7 @@ namespace FreeSql.MySql.Curd
}
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -168,7 +168,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs
index b208affd..084553f0 100644
--- a/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs
+++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs
@@ -46,7 +46,7 @@ namespace FreeSql.MySql.Curd
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -62,7 +62,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -127,7 +127,7 @@ namespace FreeSql.MySql.Curd
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -143,7 +143,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.MySql/Curd/OnDuplicateKeyUpdate.cs b/Providers/FreeSql.Provider.MySql/Curd/OnDuplicateKeyUpdate.cs
index 9804ce92..883630c8 100644
--- a/Providers/FreeSql.Provider.MySql/Curd/OnDuplicateKeyUpdate.cs
+++ b/Providers/FreeSql.Provider.MySql/Curd/OnDuplicateKeyUpdate.cs
@@ -117,7 +117,7 @@ namespace FreeSql.MySql.Curd
if (string.IsNullOrEmpty(sql)) return 0;
var before = new CurdBeforeEventArgs(_mysqlInsert.InternalTable.Type, _mysqlInsert.InternalTable, CurdType.Insert, sql, _mysqlInsert.InternalParams);
- _mysqlInsert.InternalOrm.Aop.CurdBefore?.Invoke(_mysqlInsert, before);
+ _mysqlInsert.InternalOrm.Aop.CurdBeforeHandler?.Invoke(_mysqlInsert, before);
long ret = 0;
Exception exception = null;
try
@@ -132,7 +132,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new CurdAfterEventArgs(before, exception, ret);
- _mysqlInsert.InternalOrm.Aop.CurdAfter?.Invoke(_mysqlInsert, after);
+ _mysqlInsert.InternalOrm.Aop.CurdAfterHandler?.Invoke(_mysqlInsert, after);
ClearData();
}
return ret;
@@ -146,7 +146,7 @@ namespace FreeSql.MySql.Curd
if (string.IsNullOrEmpty(sql)) return 0;
var before = new CurdBeforeEventArgs(_mysqlInsert.InternalTable.Type, _mysqlInsert.InternalTable, CurdType.Insert, sql, _mysqlInsert.InternalParams);
- _mysqlInsert.InternalOrm.Aop.CurdBefore?.Invoke(_mysqlInsert, before);
+ _mysqlInsert.InternalOrm.Aop.CurdBeforeHandler?.Invoke(_mysqlInsert, before);
long ret = 0;
Exception exception = null;
try
@@ -161,7 +161,7 @@ namespace FreeSql.MySql.Curd
finally
{
var after = new CurdAfterEventArgs(before, exception, ret);
- _mysqlInsert.InternalOrm.Aop.CurdAfter?.Invoke(_mysqlInsert, after);
+ _mysqlInsert.InternalOrm.Aop.CurdAfterHandler?.Invoke(_mysqlInsert, after);
ClearData();
}
return ret;
diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs
index 177f36e8..6b6c5565 100644
--- a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs
@@ -97,7 +97,7 @@ namespace FreeSql.Odbc.Dameng
if (_identCol == null || _source.Count > 1)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, _params);
@@ -110,7 +110,7 @@ namespace FreeSql.Odbc.Dameng
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
@@ -120,7 +120,7 @@ namespace FreeSql.Odbc.Dameng
sql = $"{sql} RETURNING {identColName} INTO {identParam.ParameterName}";
var dbParms = _params.Concat(new[] { identParam }).ToArray();
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
_orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, dbParms);
@@ -134,7 +134,7 @@ namespace FreeSql.Odbc.Dameng
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -167,7 +167,7 @@ namespace FreeSql.Odbc.Dameng
if (_identCol == null || _source.Count > 1)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, _params);
@@ -180,7 +180,7 @@ namespace FreeSql.Odbc.Dameng
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
@@ -190,7 +190,7 @@ namespace FreeSql.Odbc.Dameng
sql = $"{sql} RETURNING {identColName} INTO {identParam.ParameterName}";
var dbParms = _params.Concat(new[] { identParam }).ToArray();
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, dbParms);
@@ -204,7 +204,7 @@ namespace FreeSql.Odbc.Dameng
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs
index 44cc9c5e..dddd0cf0 100644
--- a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs
@@ -30,7 +30,7 @@ namespace FreeSql.Odbc.Default
Object poolConn = null;
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, string.Concat(sql, $"; {_utils.Adapter.InsertAfterGetIdentitySql}"), _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -56,7 +56,7 @@ namespace FreeSql.Odbc.Default
_orm.Ado.MasterPool.Return(poolConn);
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -76,7 +76,7 @@ namespace FreeSql.Odbc.Default
Object poolConn = null;
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, string.Concat(sql, $"; {_utils.Adapter.InsertAfterGetIdentitySql}"), _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -102,7 +102,7 @@ namespace FreeSql.Odbc.Default
_orm.Ado.MasterPool.Return(poolConn);
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/GBase/Curd/__OdbcGBaseInsert.cs b/Providers/FreeSql.Provider.Odbc/GBase/Curd/__OdbcGBaseInsert.cs
index b017e33d..8036e82a 100644
--- a/Providers/FreeSql.Provider.Odbc/GBase/Curd/__OdbcGBaseInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/GBase/Curd/__OdbcGBaseInsert.cs
@@ -33,7 +33,7 @@ namespace FreeSql.Odbc.GBase
if (identCols.Any() == false)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, _params);
@@ -46,13 +46,13 @@ namespace FreeSql.Odbc.GBase
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
sql = string.Concat(sql, " RETURNING ", _commonUtils.QuoteSqlName(identCols.First().Value.Attribute.Name));
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(_connection, _transaction, CommandType.Text, sql, _params)), out ret);
@@ -65,7 +65,7 @@ namespace FreeSql.Odbc.GBase
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -99,7 +99,7 @@ namespace FreeSql.Odbc.GBase
if (identCols.Any() == false)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, _params);
@@ -112,13 +112,13 @@ namespace FreeSql.Odbc.GBase
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
sql = string.Concat(sql, " RETURNING ", _commonUtils.QuoteSqlName(identCols.First().Value.Attribute.Name));
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
long.TryParse(string.Concat(await _orm.Ado.ExecuteScalarAsync(_connection, _transaction, CommandType.Text, sql, _params)), out ret);
@@ -131,7 +131,7 @@ namespace FreeSql.Odbc.GBase
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlDelete.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlDelete.cs
index c10fcb88..a81acc88 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlDelete.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlDelete.cs
@@ -33,7 +33,7 @@ namespace FreeSql.Odbc.MySql
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -48,7 +48,7 @@ namespace FreeSql.Odbc.MySql
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
@@ -74,7 +74,7 @@ namespace FreeSql.Odbc.MySql
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -89,7 +89,7 @@ namespace FreeSql.Odbc.MySql
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs
index d90e0ec4..41b4b0bf 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs
@@ -29,7 +29,7 @@ namespace FreeSql.Odbc.MySql
Object poolConn = null;
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, string.Concat(sql, "; SELECT LAST_INSERT_ID();"), _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -55,7 +55,7 @@ namespace FreeSql.Odbc.MySql
_orm.Ado.MasterPool.Return(poolConn);
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -76,7 +76,7 @@ namespace FreeSql.Odbc.MySql
}
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -91,7 +91,7 @@ namespace FreeSql.Odbc.MySql
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -109,7 +109,7 @@ namespace FreeSql.Odbc.MySql
Object poolConn = null;
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, string.Concat(sql, "; SELECT LAST_INSERT_ID();"), _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -135,7 +135,7 @@ namespace FreeSql.Odbc.MySql
_orm.Ado.MasterPool.Return(poolConn);
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -156,7 +156,7 @@ namespace FreeSql.Odbc.MySql
}
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -171,7 +171,7 @@ namespace FreeSql.Odbc.MySql
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs
index b0892779..4613ed9d 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs
@@ -40,7 +40,7 @@ namespace FreeSql.Odbc.MySql
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -56,7 +56,7 @@ namespace FreeSql.Odbc.MySql
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -121,7 +121,7 @@ namespace FreeSql.Odbc.MySql
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -137,7 +137,7 @@ namespace FreeSql.Odbc.MySql
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs
index 0e97103b..ac7cb08e 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs
@@ -97,7 +97,7 @@ namespace FreeSql.Odbc.Oracle
if (_identCol == null || _source.Count > 1)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, _params);
@@ -110,7 +110,7 @@ namespace FreeSql.Odbc.Oracle
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
@@ -120,7 +120,7 @@ namespace FreeSql.Odbc.Oracle
sql = $"{sql} RETURNING {identColName} INTO {identParam.ParameterName}";
var dbParms = _params.Concat(new[] { identParam }).ToArray();
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
_orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, dbParms);
@@ -134,7 +134,7 @@ namespace FreeSql.Odbc.Oracle
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -167,7 +167,7 @@ namespace FreeSql.Odbc.Oracle
if (_identCol == null || _source.Count > 1)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, _params);
@@ -180,7 +180,7 @@ namespace FreeSql.Odbc.Oracle
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
@@ -190,7 +190,7 @@ namespace FreeSql.Odbc.Oracle
sql = $"{sql} RETURNING {identColName} INTO {identParam.ParameterName}";
var dbParms = _params.Concat(new[] { identParam }).ToArray();
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, dbParms);
@@ -204,7 +204,7 @@ namespace FreeSql.Odbc.Oracle
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLDelete.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLDelete.cs
index 1fe6c5ee..0d50f9dc 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLDelete.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLDelete.cs
@@ -33,7 +33,7 @@ namespace FreeSql.Odbc.PostgreSQL
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -48,7 +48,7 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
@@ -74,7 +74,7 @@ namespace FreeSql.Odbc.PostgreSQL
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -89,7 +89,7 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsert.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsert.cs
index 3431e614..a2a2a2a2 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsert.cs
@@ -33,7 +33,7 @@ namespace FreeSql.Odbc.PostgreSQL
if (identCols.Any() == false)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, _params);
@@ -46,13 +46,13 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
sql = string.Concat(sql, " RETURNING ", _commonUtils.QuoteSqlName(identCols.First().Value.Attribute.Name));
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(_connection, _transaction, CommandType.Text, sql, _params)), out ret);
@@ -65,7 +65,7 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -87,7 +87,7 @@ namespace FreeSql.Odbc.PostgreSQL
}
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -102,7 +102,7 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -126,7 +126,7 @@ namespace FreeSql.Odbc.PostgreSQL
if (identCols.Any() == false)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, _params);
@@ -139,13 +139,13 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
sql = string.Concat(sql, " RETURNING ", _commonUtils.QuoteSqlName(identCols.First().Value.Attribute.Name));
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
long.TryParse(string.Concat(await _orm.Ado.ExecuteScalarAsync(_connection, _transaction, CommandType.Text, sql, _params)), out ret);
@@ -158,7 +158,7 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -179,7 +179,7 @@ namespace FreeSql.Odbc.PostgreSQL
}
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -194,7 +194,7 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs
index fb8ce06a..8bb51100 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs
@@ -39,7 +39,7 @@ namespace FreeSql.Odbc.PostgreSQL
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -55,7 +55,7 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -129,7 +129,7 @@ namespace FreeSql.Odbc.PostgreSQL
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -145,7 +145,7 @@ namespace FreeSql.Odbc.PostgreSQL
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerDelete.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerDelete.cs
index 6cee6f44..6370377c 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerDelete.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerDelete.cs
@@ -38,7 +38,7 @@ namespace FreeSql.Odbc.SqlServer
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -53,7 +53,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
@@ -84,7 +84,7 @@ namespace FreeSql.Odbc.SqlServer
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -99,7 +99,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsert.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsert.cs
index 5bd211c0..d134cfe0 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsert.cs
@@ -26,7 +26,7 @@ namespace FreeSql.Odbc.SqlServer
var versionGreaterThan10 = (_commonUtils as OdbcSqlServerUtils).ServerVersion > 10;
var sql = versionGreaterThan10 ? this.ToSql() : this.ToSqlValuesOrSelectUnionAll(false);
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -41,7 +41,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return affrows;
}
@@ -53,7 +53,7 @@ namespace FreeSql.Odbc.SqlServer
sql = string.Concat(sql, "; SELECT SCOPE_IDENTITY();");
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -68,7 +68,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -105,7 +105,7 @@ namespace FreeSql.Odbc.SqlServer
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -120,7 +120,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -136,7 +136,7 @@ namespace FreeSql.Odbc.SqlServer
var versionGreaterThan10 = (_commonUtils as OdbcSqlServerUtils).ServerVersion > 10;
var sql = versionGreaterThan10 ? this.ToSql() : this.ToSqlValuesOrSelectUnionAll(false);
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var affrows = 0;
Exception exception = null;
try
@@ -151,7 +151,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return affrows;
}
@@ -163,7 +163,7 @@ namespace FreeSql.Odbc.SqlServer
sql = string.Concat(sql, "; SELECT SCOPE_IDENTITY();");
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -178,7 +178,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -215,7 +215,7 @@ namespace FreeSql.Odbc.SqlServer
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -230,7 +230,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs
index c6b1f146..3af0446f 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs
@@ -44,7 +44,7 @@ namespace FreeSql.Odbc.SqlServer
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -60,7 +60,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -128,7 +128,7 @@ namespace FreeSql.Odbc.SqlServer
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -144,7 +144,7 @@ namespace FreeSql.Odbc.SqlServer
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
index da9c4f0e..71ad77dc 100644
--- a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
+++ b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
@@ -99,7 +99,7 @@ namespace FreeSql.Oracle.Curd
if (_identCol == null || _source.Count > 1)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, _params);
@@ -112,7 +112,7 @@ namespace FreeSql.Oracle.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
@@ -122,7 +122,7 @@ namespace FreeSql.Oracle.Curd
sql = $"{sql} RETURNING {identColName} INTO {identParam.ParameterName}";
var dbParms = _params.Concat(new[] { identParam }).ToArray();
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
_orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, dbParms);
@@ -136,7 +136,7 @@ namespace FreeSql.Oracle.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -168,7 +168,7 @@ namespace FreeSql.Oracle.Curd
if (_identCol == null || _source.Count > 1)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, _params);
@@ -181,7 +181,7 @@ namespace FreeSql.Oracle.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
@@ -191,7 +191,7 @@ namespace FreeSql.Oracle.Curd
sql = $"{sql} RETURNING {identColName} INTO {identParam.ParameterName}";
var dbParms = _params.Concat(new[] { identParam }).ToArray();
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, dbParms);
@@ -205,7 +205,7 @@ namespace FreeSql.Oracle.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/OnConflictDoUpdate.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/OnConflictDoUpdate.cs
index bedded9d..c4d87aed 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/Curd/OnConflictDoUpdate.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/OnConflictDoUpdate.cs
@@ -156,7 +156,7 @@ namespace FreeSql.PostgreSQL.Curd
if (string.IsNullOrEmpty(sql)) return 0;
var before = new CurdBeforeEventArgs(_pgsqlInsert.InternalTable.Type, _pgsqlInsert.InternalTable, CurdType.Insert, sql, _pgsqlInsert.InternalParams);
- _pgsqlInsert.InternalOrm.Aop.CurdBefore?.Invoke(_pgsqlInsert, before);
+ _pgsqlInsert.InternalOrm.Aop.CurdBeforeHandler?.Invoke(_pgsqlInsert, before);
long ret = 0;
Exception exception = null;
try
@@ -171,7 +171,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new CurdAfterEventArgs(before, exception, ret);
- _pgsqlInsert.InternalOrm.Aop.CurdAfter?.Invoke(_pgsqlInsert, after);
+ _pgsqlInsert.InternalOrm.Aop.CurdAfterHandler?.Invoke(_pgsqlInsert, after);
ClearData();
}
return ret;
@@ -185,7 +185,7 @@ namespace FreeSql.PostgreSQL.Curd
if (string.IsNullOrEmpty(sql)) return 0;
var before = new CurdBeforeEventArgs(_pgsqlInsert.InternalTable.Type, _pgsqlInsert.InternalTable, CurdType.Insert, sql, _pgsqlInsert.InternalParams);
- _pgsqlInsert.InternalOrm.Aop.CurdBefore?.Invoke(_pgsqlInsert, before);
+ _pgsqlInsert.InternalOrm.Aop.CurdBeforeHandler?.Invoke(_pgsqlInsert, before);
long ret = 0;
Exception exception = null;
try
@@ -200,7 +200,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new CurdAfterEventArgs(before, exception, ret);
- _pgsqlInsert.InternalOrm.Aop.CurdAfter?.Invoke(_pgsqlInsert, after);
+ _pgsqlInsert.InternalOrm.Aop.CurdAfterHandler?.Invoke(_pgsqlInsert, after);
ClearData();
}
return ret;
diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLDelete.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLDelete.cs
index b4586c2d..9a275042 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLDelete.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLDelete.cs
@@ -33,7 +33,7 @@ namespace FreeSql.PostgreSQL.Curd
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -48,7 +48,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
@@ -74,7 +74,7 @@ namespace FreeSql.PostgreSQL.Curd
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -89,7 +89,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsert.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsert.cs
index da3f8675..d010dd01 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsert.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsert.cs
@@ -46,7 +46,7 @@ namespace FreeSql.PostgreSQL.Curd
if (identCols.Any() == false)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, _params);
@@ -59,13 +59,13 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
sql = string.Concat(sql, " RETURNING ", _commonUtils.QuoteSqlName(identCols.First().Value.Attribute.Name));
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(_connection, _transaction, CommandType.Text, sql, _params)), out ret);
@@ -78,7 +78,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -100,7 +100,7 @@ namespace FreeSql.PostgreSQL.Curd
}
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -115,7 +115,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -139,7 +139,7 @@ namespace FreeSql.PostgreSQL.Curd
if (identCols.Any() == false)
{
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
ret = await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, _params);
@@ -152,13 +152,13 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return 0;
}
sql = string.Concat(sql, " RETURNING ", _commonUtils.QuoteSqlName(identCols.First().Value.Attribute.Name));
before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
try
{
long.TryParse(string.Concat(await _orm.Ado.ExecuteScalarAsync(_connection, _transaction, CommandType.Text, sql, _params)), out ret);
@@ -171,7 +171,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -192,7 +192,7 @@ namespace FreeSql.PostgreSQL.Curd
}
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -207,7 +207,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs
index ea1320c7..4d7f248f 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs
@@ -47,7 +47,7 @@ namespace FreeSql.PostgreSQL.Curd
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -63,7 +63,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -139,7 +139,7 @@ namespace FreeSql.PostgreSQL.Curd
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -155,7 +155,7 @@ namespace FreeSql.PostgreSQL.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerDelete.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerDelete.cs
index 6548ba9e..175084a9 100644
--- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerDelete.cs
+++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerDelete.cs
@@ -38,7 +38,7 @@ namespace FreeSql.SqlServer.Curd
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -53,7 +53,7 @@ namespace FreeSql.SqlServer.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
@@ -84,7 +84,7 @@ namespace FreeSql.SqlServer.Curd
sql = sb.ToString();
var dbParms = _params.ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -99,7 +99,7 @@ namespace FreeSql.SqlServer.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
this.ClearData();
return ret;
diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsert.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsert.cs
index ba66255e..36dd6f17 100644
--- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsert.cs
+++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsert.cs
@@ -38,7 +38,7 @@ namespace FreeSql.SqlServer.Curd
sql = string.Concat(sql, "; SELECT SCOPE_IDENTITY();");
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -53,7 +53,7 @@ namespace FreeSql.SqlServer.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -89,7 +89,7 @@ namespace FreeSql.SqlServer.Curd
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -104,7 +104,7 @@ namespace FreeSql.SqlServer.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -122,7 +122,7 @@ namespace FreeSql.SqlServer.Curd
sql = string.Concat(sql, "; SELECT SCOPE_IDENTITY();");
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -137,7 +137,7 @@ namespace FreeSql.SqlServer.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -173,7 +173,7 @@ namespace FreeSql.SqlServer.Curd
sql = sb.ToString();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -188,7 +188,7 @@ namespace FreeSql.SqlServer.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs
index bfb9e139..d2ea517c 100644
--- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs
+++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs
@@ -45,7 +45,7 @@ namespace FreeSql.SqlServer.Curd
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -61,7 +61,7 @@ namespace FreeSql.SqlServer.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -129,7 +129,7 @@ namespace FreeSql.SqlServer.Curd
sql = sb.ToString();
var dbParms = _params.Concat(_paramsSource).ToArray();
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
Exception exception = null;
try
@@ -145,7 +145,7 @@ namespace FreeSql.SqlServer.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
diff --git a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs
index b0209b36..d3ac22ba 100644
--- a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs
+++ b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs
@@ -27,7 +27,7 @@ namespace FreeSql.Sqlite.Curd
sql = string.Concat(sql, "; SELECT last_insert_rowid();");
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -42,7 +42,7 @@ namespace FreeSql.Sqlite.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}
@@ -70,7 +70,7 @@ namespace FreeSql.Sqlite.Curd
sql = string.Concat(sql, "; SELECT last_insert_rowid();");
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params);
- _orm.Aop.CurdBefore?.Invoke(this, before);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
long ret = 0;
Exception exception = null;
try
@@ -85,7 +85,7 @@ namespace FreeSql.Sqlite.Curd
finally
{
var after = new Aop.CurdAfterEventArgs(before, exception, ret);
- _orm.Aop.CurdAfter?.Invoke(this, after);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
}
return ret;
}