From 9de878be82aa6d995861c36215cd42caad1995c6 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 13 May 2022 22:43:12 +0800 Subject: [PATCH] Time configuration --- .../SqlBuilderProvider/InsertBuilder.cs | 23 ++++++++++++++++++ .../SqlBuilderProvider/UpdateBuilder.cs | 24 ++++++++++++++++++- .../MySql/SqlBuilder/MySqlInsertBuilder.cs | 1 + .../Oracle/SqlBuilder/OracleInsertBuilder.cs | 1 + .../SqlBuilder/PostgreSQLInsertBuilder.cs | 1 + .../Sqlite/SqlBuilder/SqliteInsertBuilder.cs | 1 + 6 files changed, 50 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs index 2c390db71..524ca94da 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs @@ -80,6 +80,29 @@ namespace SqlSugar #endregion #region Methods + + public virtual void ActionMinDate() + { + if (this.Parameters != null) + { + foreach (var item in this.Parameters) + { + if (item.DbType == System.Data.DbType.Date || item.DbType == System.Data.DbType.DateTime) + { + if (item.Value != null && item.Value != DBNull.Value) + { + if (item.Value is DateTime) + { + if (Convert.ToDateTime(item.Value) == DateTime.MinValue) + { + item.Value = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); + } + } + } + } + } + } + } public virtual void Clear() { diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs index 3ff75b7ba..4724f0a46 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs @@ -161,6 +161,7 @@ namespace SqlSugar var isSingle = groupList.Count() == 1; if (isSingle&&this.IsListUpdate==null) { + ActionMinDate(); return ToSingleSqlString(groupList); } else @@ -279,7 +280,28 @@ namespace SqlSugar } return string.Format(SqlTemplate, GetTableNameString, columnsString, whereString); } - + public virtual void ActionMinDate() + { + if (this.Parameters != null) + { + foreach (var item in this.Parameters) + { + if (item.DbType == System.Data.DbType.Date || item.DbType == System.Data.DbType.DateTime) + { + if (item.Value != null && item.Value != DBNull.Value) + { + if (item.Value is DateTime) + { + if (Convert.ToDateTime(item.Value) == DateTime.MinValue) + { + item.Value = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); + } + } + } + } + } + } + } public virtual object FormatValue(object value) { if (value == null) diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs index 230f8a2df..0522ff8bc 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs @@ -106,6 +106,7 @@ namespace SqlSugar if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName)); + ActionMinDate(); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); } else diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleInsertBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleInsertBuilder.cs index 20e588351..15e742a42 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleInsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleInsertBuilder.cs @@ -44,6 +44,7 @@ namespace SqlSugar columnsString = columnsString.TrimEnd(',') + "," + string.Join(",", identities.Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); columnParametersString = columnParametersString.TrimEnd(',') + "," + string.Join(",", identities.Select(it => it.OracleSequenceName + ".nextval")); } + ActionMinDate(); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); } else diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs index 07c5b30b5..5610b99cb 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs @@ -44,6 +44,7 @@ namespace SqlSugar if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName)); + ActionMinDate(); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); } else diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs index 7f127ae6f..61ac86dd5 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs @@ -47,6 +47,7 @@ namespace SqlSugar if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName)); + ActionMinDate(); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); } else