diff --git a/Directory.Build.props b/Directory.Build.props index 6001c557..0ce46e50 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -9,7 +9,7 @@ - 3.2.660-preview22020526 + 3.2.660-preview22020528 diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 6b638cad..1ab5bf1c 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -795,5 +795,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql/Interface/IAop.cs b/FreeSql/Interface/IAop.cs index 47f7ed03..edb938f4 100644 --- a/FreeSql/Interface/IAop.cs +++ b/FreeSql/Interface/IAop.cs @@ -308,12 +308,13 @@ namespace FreeSql.Aop #region AuditValue public class AuditValueEventArgs : EventArgs { - public AuditValueEventArgs(AuditValueType autoValueType, ColumnInfo column, PropertyInfo property, object value) + public AuditValueEventArgs(AuditValueType autoValueType, ColumnInfo column, PropertyInfo property, object value, object obj) { this.AuditValueType = autoValueType; this.Column = column; this.Property = property; this._value = value; + this.Object = obj; } /// @@ -342,6 +343,7 @@ namespace FreeSql.Aop } private object _value; public bool ValueIsChanged { get; private set; } + public object Object { get; } } public enum AuditValueType { Update, Insert, InsertOrUpdate } #endregion diff --git a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs index 436bfff6..2cc47afd 100644 --- a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs @@ -93,7 +93,7 @@ namespace FreeSql.Internal.CommonProvider foreach (var col in table.Columns.Values) { object val = col.GetValue(data); - var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.InsertOrUpdate, col, table.Properties.TryGetValue(col.CsName, out var tryprop) ? tryprop : null, val); + var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.InsertOrUpdate, col, table.Properties.TryGetValue(col.CsName, out var tryprop) ? tryprop : null, val, data); orm.Aop.AuditValueHandler(sender, auditArgs); if (auditArgs.ValueIsChanged) { diff --git a/FreeSql/Internal/CommonProvider/InsertProvider.cs b/FreeSql/Internal/CommonProvider/InsertProvider.cs index 4fa5a197..5a58cdab 100644 --- a/FreeSql/Internal/CommonProvider/InsertProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertProvider.cs @@ -167,7 +167,7 @@ namespace FreeSql.Internal.CommonProvider object val = col.GetValue(data); if (orm.Aop.AuditValueHandler != null) { - var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Insert, col, table.Properties.TryGetValue(col.CsName, out var tryprop) ? tryprop : null, val); + var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Insert, col, table.Properties.TryGetValue(col.CsName, out var tryprop) ? tryprop : null, val, data); orm.Aop.AuditValueHandler(sender, auditArgs); if (auditArgs.ValueIsChanged) { diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs index c70ba516..32a1b741 100644 --- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs @@ -410,7 +410,7 @@ namespace FreeSql.Internal.CommonProvider foreach (var col in table.Columns.Values) { object val = col.GetValue(d); - var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Update, col, table.Properties.TryGetValue(col.CsName, out var tryprop) ? tryprop : null, val); + var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Update, col, table.Properties.TryGetValue(col.CsName, out var tryprop) ? tryprop : null, val, d); orm.Aop.AuditValueHandler(sender, auditArgs); if (auditArgs.ValueIsChanged) { @@ -432,7 +432,7 @@ namespace FreeSql.Internal.CommonProvider foreach (var col in table.Columns.Values) { object val = col.GetValue(data); - var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Update, col, table.Properties.TryGetValue(col.CsName, out var tryprop) ? tryprop : null, val); + var auditArgs = new Aop.AuditValueEventArgs(Aop.AuditValueType.Update, col, table.Properties.TryGetValue(col.CsName, out var tryprop) ? tryprop : null, val, data); orm.Aop.AuditValueHandler(sender, auditArgs); if (auditArgs.ValueIsChanged) {