diff --git a/Src/Asp.Net/PgSqlTest/Demo/DemoB_Aop.cs b/Src/Asp.Net/PgSqlTest/Demo/DemoB_Aop.cs index a8b633e8f..564e784f3 100644 --- a/Src/Asp.Net/PgSqlTest/Demo/DemoB_Aop.cs +++ b/Src/Asp.Net/PgSqlTest/Demo/DemoB_Aop.cs @@ -23,7 +23,7 @@ namespace OrmTest }); db.Aop.OnLogExecuted = (sql, pars) => //SQL executed event { - Console.WriteLine("OnLogExecuted"+sql); + Console.WriteLine("OnLogExecuted" + sql); }; db.Aop.OnLogExecuting = (sql, pars) => //SQL executing event (pre-execution) { @@ -46,14 +46,14 @@ namespace OrmTest var businessData = it.BusinessData; var time = it.Time; var diffType = it.DiffType;//enum insert 、update and delete - Console.WriteLine(businessData); - Console.WriteLine(editBeforeData[0].Columns[1].Value); - Console.WriteLine("to"); - Console.WriteLine(editAfterData[0].Columns[1].Value); + //Console.WriteLine(businessData); + //Console.WriteLine(editBeforeData[0].Columns[1].Value); + //Console.WriteLine("to"); + //Console.WriteLine(editAfterData[0].Columns[1].Value); //Write logic }; - + db.Queryable().ToList(); db.Queryable().ToList(); @@ -61,7 +61,7 @@ namespace OrmTest var data = db.Queryable().First(); data.Name = "changeName"; db.Updateable(data).EnableDiffLogEvent("--update Order--").ExecuteCommand(); - + db.Insertable(data).EnableDiffLogEvent("--inser Order--").ExecuteCommand(); Console.WriteLine("#### Aop End ####"); } } diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index a2d153cfe..e07c4733e 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -747,8 +747,16 @@ namespace SqlSugar foreach (var item in this.EntityInfo.Columns.Where(it => it.IsIgnore == false && GetPrimaryKeys().Any(pk => pk.Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase)))) { var fielddName = item.DbColumnName; - var fieldValue = this.EntityInfo.Columns.FirstOrDefault(it => it.PropertyName == item.PropertyName).PropertyInfo.GetValue(this.InsertObjs.Last(), null).ObjToString(); - cons.Add(new ConditionalModel() { ConditionalType = ConditionalType.Equal, FieldName = fielddName, FieldValue = fieldValue }); + var filedObject = this.EntityInfo.Columns.FirstOrDefault(it => it.PropertyName == item.PropertyName).PropertyInfo.GetValue(this.InsertObjs.Last(), null); + var fieldValue = filedObject.ObjToString(); + if (filedObject != null && filedObject.GetType() != typeof(string)&&this.Context.CurrentConnectionConfig.DbType==DbType.PostgreSQL) + { + cons.Add(new ConditionalModel() { ConditionalType = ConditionalType.Equal, FieldName = fielddName, FieldValue = fieldValue,FieldValueConvertFunc= it => UtilMethods.ChangeType2(it, filedObject.GetType()) }); + } + else + { + cons.Add(new ConditionalModel() { ConditionalType = ConditionalType.Equal, FieldName = fielddName, FieldValue = fieldValue }); + } } } Check.Exception(cons.IsNullOrEmpty(), "Insertable.EnableDiffLogEvent need primary key");