From 359757a076cc4dc484fea357deda71bd70fdcfaf Mon Sep 17 00:00:00 2001 From: SUNKAIXUAN <610262374@qq.com> Date: Fri, 26 Mar 2021 21:39:36 +0800 Subject: [PATCH] PgSql Updateable.SetColumn datetime== null bug --- Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs | 12 ++++++++++++ .../ResolveItems/MemberInitExpressionResolve.cs | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs b/Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs index 3c2863c90..f18044f8d 100644 --- a/Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs +++ b/Src/Asp.Net/PgSqlTest/UnitTest/Updateable.cs @@ -54,8 +54,20 @@ namespace OrmTest UValidate.Check(sql.Key, @"UPDATE ""diary"" SET ""typeid"" = @Const0 WHERE ( ""id"" = @ID1 )", "Updateable"); + Db.Updateable().SetColumns(it => new OrderModel() + { + CreateTime = null + }).Where(it => it.Id == 1).ExecuteCommand(); + } } + [SugarTable("order")] + public class OrderModel + { + [SugarColumn(IsPrimaryKey =true)] + public int Id { get; set; } + public DateTime? CreateTime { get; set; } + } public class UnitSaveDiary { public int ID { get; set; } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs index fae2c88e3..af9e70668 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs @@ -134,7 +134,14 @@ namespace SqlSugar base.Start(); string parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.Const + this.Context.ParameterIndex; parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameterName)); - this.Context.Parameters.Add(new SugarParameter(parameterName, parameter.CommonTempData)); + var addItem = new SugarParameter(parameterName, parameter.CommonTempData); + var dataType = UtilMethods.GetUnderType(item.Type); + if (addItem.Value == null && dataType == UtilConstants.DateType) + { + addItem.DbType = System.Data.DbType.Date; + + } + this.Context.Parameters.Add(addItem); this.Context.ParameterIndex++; } else if (item is MemberExpression)