mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +08:00
- 增加 OnInserted、OnUpdated、OnDeleted、OnSelected 等 AOP 方法;
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
using FreeSql.DatabaseModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq.Expressions;
|
||||
using System.Reflection;
|
||||
|
||||
@ -31,6 +32,23 @@ namespace FreeSql {
|
||||
/// 自定义实体的属性配置,方便和多个 ORM 共同使用
|
||||
/// </summary>
|
||||
EventHandler<AopConfigEntityPropertyEventArgs> ConfigEntityProperty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// IUpdate 执行成功后触发
|
||||
/// </summary>
|
||||
EventHandler<AopOnUpdatedEventArgs> OnUpdated { get; set; }
|
||||
/// <summary>
|
||||
/// IInsert 执行成功后触发
|
||||
/// </summary>
|
||||
EventHandler<AopOnInsertedEventArgs> OnInserted { get; set; }
|
||||
/// <summary>
|
||||
/// IDeleted 执行成功后触发
|
||||
/// </summary>
|
||||
EventHandler<AopOnDeletedEventArgs> OnDeleted { get; set; }
|
||||
/// <summary>
|
||||
/// ISelect 执行成功后触发
|
||||
/// </summary>
|
||||
EventHandler<AopOnSelectedEventArgs> OnSelected { get; set; }
|
||||
}
|
||||
|
||||
public class AopToListEventArgs : EventArgs {
|
||||
@ -107,4 +125,84 @@ namespace FreeSql {
|
||||
/// </summary>
|
||||
public ColumnAttribute ModifyResult { get; }
|
||||
}
|
||||
|
||||
public class AopOnUpdatedEventArgs : AopOnDeletedEventArgs {
|
||||
public AopOnUpdatedEventArgs(Type entityType, object source, string sql, DbParameter[] dbParms, int affrows, object returning)
|
||||
: base(entityType, sql, dbParms, affrows, returning) {
|
||||
this.Source = source;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新的实体
|
||||
/// </summary>
|
||||
public object Source { get; }
|
||||
}
|
||||
public class AopOnInsertedEventArgs : AopOnUpdatedEventArgs {
|
||||
public AopOnInsertedEventArgs(Type entityType, object source, string sql, DbParameter[] dbParms, int affrows, long identity, object returning)
|
||||
: base(entityType, source, sql, dbParms, affrows, returning) {
|
||||
this.Identity = identity;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 执行 ExecuteIdentity 方法时有效
|
||||
/// </summary>
|
||||
public long? Identity { get; set; }
|
||||
}
|
||||
|
||||
public class AopOnDeletedEventArgs : EventArgs {
|
||||
public AopOnDeletedEventArgs(Type entityType, string sql, DbParameter[] dbParms, int affrows, object returning) {
|
||||
this.EntityType = entityType;
|
||||
this.Sql = sql;
|
||||
this.DbParms = dbParms;
|
||||
this.Affrows = affrows;
|
||||
this.Returning = returning;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 实体类型
|
||||
/// </summary>
|
||||
public Type EntityType { get; }
|
||||
/// <summary>
|
||||
/// 执行的 SQL
|
||||
/// </summary>
|
||||
public string Sql { get; }
|
||||
/// <summary>
|
||||
/// 参数化命令
|
||||
/// </summary>
|
||||
public DbParameter[] DbParms { get; }
|
||||
/// <summary>
|
||||
/// 执行 ExecuteAffrows 方法时有效
|
||||
/// </summary>
|
||||
public int Affrows { get; }
|
||||
/// <summary>
|
||||
/// 执行 ExecuteDeleted 方法时有效
|
||||
/// </summary>
|
||||
public object Returning { get; }
|
||||
}
|
||||
|
||||
public class AopOnSelectedEventArgs : EventArgs {
|
||||
public AopOnSelectedEventArgs(Type entityType, string sql, DbParameter[] dbParms, object returnData) {
|
||||
this.EntityType = entityType;
|
||||
this.Sql = sql;
|
||||
this.DbParms = dbParms;
|
||||
this.ReturnData = returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 实体类型
|
||||
/// </summary>
|
||||
public Type EntityType { get; }
|
||||
/// <summary>
|
||||
/// 执行的 SQL
|
||||
/// </summary>
|
||||
public string Sql { get; }
|
||||
/// <summary>
|
||||
/// 参数化命令
|
||||
/// </summary>
|
||||
public DbParameter[] DbParms { get; }
|
||||
/// <summary>
|
||||
/// 查询返回的对象
|
||||
/// </summary>
|
||||
public object ReturnData { get; }
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user