From 4829df9573a9b2b5a18a5cbc27b0ef0935da627b Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Wed, 17 Aug 2022 17:01:38 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20AuditValue=20ObjectAud?= =?UTF-8?q?itBreak=20=E5=AE=9E=E7=8E=B0=E5=AF=B9=E8=B1=A1=E5=8F=AA?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E4=B8=80=E6=AC=A1=E5=AE=A1=E8=AE=A1=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql/Interface/IAop.cs | 6 ++++++ FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs | 2 ++ FreeSql/Internal/CommonProvider/InsertProvider.cs | 1 + FreeSql/Internal/CommonProvider/UpdateProvider.cs | 4 ++++ 4 files changed, 13 insertions(+) diff --git a/FreeSql/Interface/IAop.cs b/FreeSql/Interface/IAop.cs index f9a8b354..17a189c4 100644 --- a/FreeSql/Interface/IAop.cs +++ b/FreeSql/Interface/IAop.cs @@ -347,6 +347,12 @@ namespace FreeSql.Aop /// 实体对象 /// public object Object { get; } + /// + /// 中断实体对象审计 + /// false: 每个实体对象的属性都会审计(默认) + /// true: 每个实体对象只审计一次 + /// + public bool ObjectAuditBreak { get; set; } = false; } public enum AuditValueType { Update, Insert, InsertOrUpdate } #endregion diff --git a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs index 343e8e3c..1f612f98 100644 --- a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs @@ -108,6 +108,8 @@ namespace FreeSql.Internal.CommonProvider if (changedDict != null && changedDict.ContainsKey(col.Attribute.Name) == false) changedDict.Add(col.Attribute.Name, true); } + if (auditArgs.ObjectAuditBreak) break; + if (val == null && col.Attribute.MapType == typeof(string) && col.Attribute.IsNullable == false) col.SetValue(data, val = ""); } diff --git a/FreeSql/Internal/CommonProvider/InsertProvider.cs b/FreeSql/Internal/CommonProvider/InsertProvider.cs index bc6c7e2d..045fd998 100644 --- a/FreeSql/Internal/CommonProvider/InsertProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertProvider.cs @@ -175,6 +175,7 @@ namespace FreeSql.Internal.CommonProvider if (changedDict != null && changedDict.ContainsKey(col.Attribute.Name) == false) changedDict.Add(col.Attribute.Name, true); } + if (auditArgs.ObjectAuditBreak) break; } if (col.Attribute.IsPrimary) { diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs index d928fa87..8678f0bb 100644 --- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs @@ -424,6 +424,8 @@ namespace FreeSql.Internal.CommonProvider if (changedDict != null && changedDict.ContainsKey(col.Attribute.Name) == false) changedDict.Add(col.Attribute.Name, true); } + if (auditArgs.ObjectAuditBreak) break; + if (val == null && col.Attribute.MapType == typeof(string) && col.Attribute.IsNullable == false) col.SetValue(d, val = ""); } @@ -446,6 +448,8 @@ namespace FreeSql.Internal.CommonProvider if (changedDict != null && changedDict.ContainsKey(col.Attribute.Name) == false) changedDict.Add(col.Attribute.Name, true); } + if (auditArgs.ObjectAuditBreak) break; + if (val == null && col.Attribute.MapType == typeof(string) && col.Attribute.IsNullable == false) col.SetValue(data, val = ""); }