Update Core

This commit is contained in:
sunkaixuan
2022-05-13 22:57:24 +08:00
parent 9de878be82
commit 80940c1878
14 changed files with 92 additions and 21 deletions

View File

@@ -177,6 +177,10 @@ namespace SqlSugar
{ {
item[col.ColumnName] = string.Empty; item[col.ColumnName] = string.Empty;
} }
else if (col.DataType == UtilConstants.DateType)
{
item[col.ColumnName] =UtilMethods.GetMinDate(this.context.CurrentConnectionConfig);
}
else else
{ {
item[col.ColumnName] = Activator.CreateInstance(col.DataType); item[col.ColumnName] = Activator.CreateInstance(col.DataType);

View File

@@ -80,6 +80,29 @@ namespace SqlSugar
#endregion #endregion
#region Methods #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() public virtual void Clear()
{ {
@@ -190,9 +213,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType) if (type == UtilConstants.DateType)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
} }

View File

@@ -161,6 +161,7 @@ namespace SqlSugar
var isSingle = groupList.Count() == 1; var isSingle = groupList.Count() == 1;
if (isSingle&&this.IsListUpdate==null) if (isSingle&&this.IsListUpdate==null)
{ {
ActionMinDate();
return ToSingleSqlString(groupList); return ToSingleSqlString(groupList);
} }
else else
@@ -279,7 +280,28 @@ namespace SqlSugar
} }
return string.Format(SqlTemplate, GetTableNameString, columnsString, whereString); 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) public virtual object FormatValue(object value)
{ {
if (value == null) if (value == null)
@@ -292,9 +314,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType) if (type == UtilConstants.DateType)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
} }

View File

@@ -15,5 +15,6 @@ namespace SqlSugar
public bool PgSqlIsAutoToLower = true; public bool PgSqlIsAutoToLower = true;
public int DefaultCacheDurationInSeconds { get; set; } public int DefaultCacheDurationInSeconds { get; set; }
public bool? TableEnumIsString { get; set; } public bool? TableEnumIsString { get; set; }
public DateTime? DbMinDate { get; set; } = Convert.ToDateTime("1900-01-01");
} }
} }

View File

@@ -52,9 +52,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType) if (type == UtilConstants.DateType)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
} }

View File

@@ -45,9 +45,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType) if (type == UtilConstants.DateType)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
} }
@@ -106,6 +106,7 @@ namespace SqlSugar
if (isSingle) if (isSingle)
{ {
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName)); string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
ActionMinDate();
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
} }
else else

View File

@@ -107,9 +107,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType) if (type == UtilConstants.DateType)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
} }

View File

@@ -44,6 +44,7 @@ namespace SqlSugar
columnsString = columnsString.TrimEnd(',') + "," + string.Join(",", identities.Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); columnsString = columnsString.TrimEnd(',') + "," + string.Join(",", identities.Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
columnParametersString = columnParametersString.TrimEnd(',') + "," + string.Join(",", identities.Select(it => it.OracleSequenceName + ".nextval")); columnParametersString = columnParametersString.TrimEnd(',') + "," + string.Join(",", identities.Select(it => it.OracleSequenceName + ".nextval"));
} }
ActionMinDate();
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
} }
else else
@@ -117,9 +118,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType) if (type == UtilConstants.DateType)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
if (this.Context.CurrentConnectionConfig?.MoreSettings?.DisableMillisecond == true) if (this.Context.CurrentConnectionConfig?.MoreSettings?.DisableMillisecond == true)
{ {

View File

@@ -53,9 +53,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType) if (type == UtilConstants.DateType)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
if (this.Context.CurrentConnectionConfig?.MoreSettings?.DisableMillisecond == true) if (this.Context.CurrentConnectionConfig?.MoreSettings?.DisableMillisecond == true)
{ {

View File

@@ -44,6 +44,7 @@ namespace SqlSugar
if (isSingle) if (isSingle)
{ {
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName)); string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
ActionMinDate();
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
} }
else else

View File

@@ -141,7 +141,7 @@ namespace SqlSugar
var date = Convert.ToDateTime(sqlParameter.Value); var date = Convert.ToDateTime(sqlParameter.Value);
if (date==DateTime.MinValue) if (date==DateTime.MinValue)
{ {
sqlParameter.Value = Convert.ToDateTime("1753/01/01"); sqlParameter.Value = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
} }
if (parameter.Direction == 0) if (parameter.Direction == 0)

View File

@@ -47,6 +47,7 @@ namespace SqlSugar
if (isSingle) if (isSingle)
{ {
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName)); string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
ActionMinDate();
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
} }
else else
@@ -91,9 +92,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType) if (type == UtilConstants.DateType)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
if (this.Context.CurrentConnectionConfig?.MoreSettings?.DisableMillisecond == true) if (this.Context.CurrentConnectionConfig?.MoreSettings?.DisableMillisecond == true)
{ {

View File

@@ -47,9 +47,9 @@ namespace SqlSugar
if (type == UtilConstants.DateType && iswhere == false) if (type == UtilConstants.DateType && iswhere == false)
{ {
var date = value.ObjToDate(); var date = value.ObjToDate();
if (date < Convert.ToDateTime("1900-1-1")) if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
{ {
date = Convert.ToDateTime("1900-1-1"); date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
} }
if (this.Context.CurrentConnectionConfig?.MoreSettings?.DisableMillisecond == true) if (this.Context.CurrentConnectionConfig?.MoreSettings?.DisableMillisecond == true)
{ {

View File

@@ -193,6 +193,23 @@ namespace SqlSugar
{ {
return (T)To(value, typeof(T)); return (T)To(value, typeof(T));
} }
internal static DateTime GetMinDate(ConnectionConfig currentConnectionConfig)
{
if (currentConnectionConfig.MoreSettings == null)
{
return Convert.ToDateTime("1900-01-01");
}
else if (currentConnectionConfig.MoreSettings.DbMinDate == null)
{
return Convert.ToDateTime("1900-01-01");
}
else
{
return currentConnectionConfig.MoreSettings.DbMinDate.Value;
}
}
internal static Type GetUnderType(Type oldType) internal static Type GetUnderType(Type oldType)
{ {
Type type = Nullable.GetUnderlyingType(oldType); Type type = Nullable.GetUnderlyingType(oldType);