Update pgsql subinsert datetime bug

This commit is contained in:
sunkaixuna 2021-10-17 13:36:35 +08:00
parent ade8fe0efb
commit 17142457ba
3 changed files with 17 additions and 2 deletions

View File

@ -71,7 +71,7 @@ namespace OrmTest
Id = 0,
Items = new List<OrderItem>() {
new OrderItem(){
CreateTime=DateTime.Now,
OrderId=0,
Price=1,
ItemId=1

View File

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
@ -243,7 +244,16 @@ namespace SqlSugar
}
else
{
insertDictionary.Add(item.DbColumnName, item.PropertyInfo.GetValue(insetObject));
var value = item.PropertyInfo.GetValue(insetObject);
if (value == null&&this.Context.CurrentConnectionConfig.DbType==DbType.PostgreSQL)
{
var underType= UtilMethods.GetUnderType(item.PropertyInfo.PropertyType);
if (underType == UtilConstants.DateType)
{
value = SqlDateTime.Null;
}
}
insertDictionary.Add(item.DbColumnName, value);
}
}
return insertDictionary;

View File

@ -90,6 +90,11 @@ namespace SqlSugar
foreach (var parameter in parameters)
{
if (parameter.Value == null) parameter.Value = DBNull.Value;
if(parameter.Value is System.Data.SqlTypes.SqlDateTime&&parameter.DbType==System.Data.DbType.AnsiString)
{
parameter.DbType = System.Data.DbType.DateTime;
parameter.Value = DBNull.Value;
}
var sqlParameter = new NpgsqlParameter();
sqlParameter.ParameterName = parameter.ParameterName;
sqlParameter.Size = parameter.Size;