diff --git a/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs index 5a111f10f..57080b95e 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs @@ -241,7 +241,17 @@ namespace SqlSugar var tableName = GetTableName(entityInfo); this.Context.MappingTables.Add(entityInfo.EntityName, tableName); entityInfo.DbTableName = tableName; - entityInfo.Columns.ForEach(it => { it.DbTableName = tableName; }); + entityInfo.Columns.ForEach(it => { + it.DbTableName = tableName; + if (it.UnderType?.Name == "DateOnly" && it.DataType == null) + { + it.DataType = "Date"; + } + if (it.UnderType?.Name == "TimeOnly" && it.DataType == null) + { + it.DataType = "Time"; + } + }); var isAny = this.Context.DbMaintenance.IsAnyTable(tableName, false); if (isAny && entityInfo.IsDisabledUpdateAll) { diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs index 5afc651e4..73af85dd9 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs @@ -319,7 +319,14 @@ namespace SqlSugar { var timeSpan = UtilMethods.DateOnlyToDateTime(columnInfo.Value); var pname = Builder.SqlParameterKeyWord + columnInfo.DbColumnName + "_ts" + GetDbColumnIndex; - this.Parameters.Add(new SugarParameter(pname,Convert.ToDateTime(timeSpan))); + if (timeSpan == null) + { + this.Parameters.Add(new SugarParameter(pname, null) { DbType=System.Data.DbType.Date }); + } + else + { + this.Parameters.Add(new SugarParameter(pname, Convert.ToDateTime(timeSpan))); + } GetDbColumnIndex++; return pname; } diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs index e41a470ee..84fa98a6b 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs @@ -417,7 +417,14 @@ namespace SqlSugar { var timeSpan = UtilMethods.TimeOnlyToTimeSpan(columnInfo.Value); var pname = Builder.SqlParameterKeyWord + columnInfo.DbColumnName + "_ts" + GetDbColumnIndex; - this.Parameters.Add(new SugarParameter(pname, timeSpan)); + if (timeSpan == null) + { + this.Parameters.Add(new SugarParameter(pname, null) { DbType = System.Data.DbType.Date }); + } + else + { + this.Parameters.Add(new SugarParameter(pname, timeSpan)); + } GetDbColumnIndex++; return pname; }