mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-31 15:56:25 +08:00
Update Core
This commit is contained in:
parent
01e2c9e34c
commit
b5886c50cc
@ -28,6 +28,8 @@ namespace SqlSugar
|
||||
csharpTypeName = "long";
|
||||
if (csharpTypeName.ToLower().IsIn("boolean", "bool"))
|
||||
csharpTypeName = "bool";
|
||||
if (csharpTypeName == "DateTimeOffset")
|
||||
csharpTypeName = "DateTime";
|
||||
var mappings = this.MappingTypes.Where(it => it.Value.ToString().Equals(csharpTypeName, StringComparison.CurrentCultureIgnoreCase)).ToList();
|
||||
if (mappings!=null&&mappings.Count>0)
|
||||
return mappings.First().Key;
|
||||
|
@ -2597,6 +2597,7 @@ namespace SqlSugar
|
||||
asyncQueryableBuilder.DisableTop = this.QueryBuilder.DisableTop;
|
||||
asyncQueryableBuilder.Offset = this.QueryBuilder.Offset;
|
||||
asyncQueryableBuilder.IsSqlQuery = this.QueryBuilder.IsSqlQuery;
|
||||
asyncQueryableBuilder.OldSql = this.QueryBuilder.OldSql;
|
||||
}
|
||||
protected int SetCacheTime(int cacheDurationInSeconds)
|
||||
{
|
||||
|
@ -206,6 +206,11 @@ namespace SqlSugar
|
||||
{
|
||||
return "N'" + value.ToString().ToSqlFilter() + "'";
|
||||
}
|
||||
else if (type == UtilConstants.DateTimeOffsetType)
|
||||
{
|
||||
var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
|
||||
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
|
||||
}
|
||||
else if (type == UtilConstants.FloatType)
|
||||
{
|
||||
return "N'" +Convert.ToDouble(value).ToString() + "'";
|
||||
|
@ -45,7 +45,7 @@ namespace SqlSugar
|
||||
public object SelectValue { get; set; }
|
||||
public string SelectCacheKey { get; set; }
|
||||
public string EntityName { get; set; }
|
||||
|
||||
public string OldSql { get; set; }
|
||||
|
||||
public Type EntityType { get; set; }
|
||||
public Type ResultType { get; set; }
|
||||
@ -491,21 +491,14 @@ namespace SqlSugar
|
||||
}
|
||||
public string GetSqlQuerySql(string result)
|
||||
{
|
||||
if (this.IsSqlQuery && (Skip == null && Take == null)&&(this.WhereInfos==null||this.WhereInfos.Count==0))
|
||||
if (this.IsSqlQuery&&this.OldSql.HasValue() && (Skip == null && Take == null) && (this.WhereInfos == null || this.WhereInfos.Count == 0))
|
||||
{
|
||||
var old = result;
|
||||
var regex = @"^SELECT .* FROM \(((.|\n|\r)*)\) t $";
|
||||
if (this.Context.CurrentConnectionConfig.DbType .IsIn( DbType.MySql,DbType.PostgreSQL,DbType.Sqlite))
|
||||
{
|
||||
result = result.Substring(0,result.Length-1);
|
||||
}
|
||||
result = System.Text.RegularExpressions.Regex.Match(result,regex).Groups[1].Value;
|
||||
if (string.IsNullOrEmpty(result))
|
||||
{
|
||||
result = old;
|
||||
}
|
||||
return this.OldSql;
|
||||
}
|
||||
else
|
||||
{
|
||||
return result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
@ -310,6 +310,11 @@ namespace SqlSugar
|
||||
{
|
||||
return value.ObjToBool() ? "1" : "0";
|
||||
}
|
||||
else if (type == UtilConstants.DateTimeOffsetType)
|
||||
{
|
||||
var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
|
||||
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
|
||||
}
|
||||
else if (type == UtilConstants.StringType || type == UtilConstants.ObjType)
|
||||
{
|
||||
return "N'" + value.ToString().ToSqlFilter() + "'";
|
||||
|
@ -588,6 +588,7 @@ namespace SqlSugar
|
||||
var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig);
|
||||
var result= this.Context.Queryable<T>().AS(sqlBuilder.GetPackTable(sql, sqlBuilder.GetDefaultShortName())).With(SqlWith.Null).Select(sqlBuilder.GetDefaultShortName() + ".*");
|
||||
result.QueryBuilder.IsSqlQuery = true;
|
||||
result.QueryBuilder.OldSql = sql;
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
@ -878,7 +878,7 @@ namespace SqlSugar
|
||||
|
||||
public string GeDateFormat(string formatString, string value)
|
||||
{
|
||||
if (IsOracle())
|
||||
if (IsOracle()||IsPg())
|
||||
{
|
||||
return $"to_char({value},'{formatString}') ";
|
||||
}
|
||||
|
@ -18,6 +18,8 @@ namespace SqlSugar
|
||||
csharpTypeName = "long";
|
||||
if (csharpTypeName.ToLower().IsIn("boolean", "bool"))
|
||||
csharpTypeName = "bool";
|
||||
if (csharpTypeName == "DateTimeOffset")
|
||||
csharpTypeName = "DateTime";
|
||||
var mappings = this.MappingTypes.Where(it => it.Value.ToString().Equals(csharpTypeName, StringComparison.CurrentCultureIgnoreCase));
|
||||
return mappings.HasValue() ? mappings.First().Key : "varchar";
|
||||
}
|
||||
|
@ -22,6 +22,8 @@ namespace SqlSugar
|
||||
csharpTypeName = "bool";
|
||||
if (csharpTypeName == "SByte")
|
||||
csharpTypeName = "Byte";
|
||||
if (csharpTypeName == "DateTimeOffset")
|
||||
csharpTypeName = "DateTime";
|
||||
var mappings = this.MappingTypes.Where(it => it.Value.ToString().Equals(csharpTypeName, StringComparison.CurrentCultureIgnoreCase));
|
||||
return mappings.HasValue() ? mappings.First().Key : "varchar";
|
||||
}
|
||||
|
@ -117,6 +117,11 @@ namespace SqlSugar
|
||||
{
|
||||
sqlParameter.DbType = System.Data.DbType.AnsiString;
|
||||
}
|
||||
else if (parameter.DbType== System.Data.DbType.DateTimeOffset)
|
||||
{
|
||||
sqlParameter.Value = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)sqlParameter.Value);
|
||||
sqlParameter.DbType = System.Data.DbType.DateTime;
|
||||
}
|
||||
++index;
|
||||
}
|
||||
return result;
|
||||
|
@ -20,6 +20,8 @@ namespace SqlSugar
|
||||
csharpTypeName = "bool";
|
||||
if (csharpTypeName == "Guid")
|
||||
csharpTypeName = "string";
|
||||
if (csharpTypeName == "DateTimeOffset")
|
||||
csharpTypeName = "DateTime";
|
||||
var mappings = this.MappingTypes.Where(it => it.Value.ToString().Equals(csharpTypeName, StringComparison.CurrentCultureIgnoreCase));
|
||||
return mappings.HasValue() ? mappings.First().Key : "varchar";
|
||||
}
|
||||
|
@ -143,6 +143,11 @@ namespace SqlSugar
|
||||
sqlParameter.DbType = System.Data.DbType.String;
|
||||
sqlParameter.Value = sqlParameter.Value.ObjToString();
|
||||
}
|
||||
else if (parameter.DbType == System.Data.DbType.DateTimeOffset)
|
||||
{
|
||||
sqlParameter.Value = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)parameter.Value);
|
||||
sqlParameter.DbType = System.Data.DbType.DateTime;
|
||||
}
|
||||
else if (parameter.DbType == System.Data.DbType.Boolean)
|
||||
{
|
||||
sqlParameter.DbType = System.Data.DbType.Int16;
|
||||
|
@ -134,14 +134,19 @@ namespace SqlSugar
|
||||
else if (type == UtilConstants.BoolType)
|
||||
{
|
||||
return value.ObjToBool() ? "1" : "0";
|
||||
}
|
||||
else if (type==UtilConstants.DateTimeOffsetType)
|
||||
{
|
||||
var date= UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
|
||||
return "to_date('" + date.ToString("yyyy-MM-dd HH:mm:ss") + "', 'YYYY-MM-DD HH24:MI:SS') ";
|
||||
}
|
||||
else if (type == UtilConstants.StringType || type == UtilConstants.ObjType)
|
||||
{
|
||||
return N+"'" + value.ToString().ToSqlFilter() + "'";
|
||||
return N + "'" + value.ToString().ToSqlFilter() + "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
return N+"'" + value.ToString() + "'";
|
||||
return N + "'" + value.ToString() + "'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -76,6 +76,11 @@ namespace SqlSugar
|
||||
{
|
||||
return value.ObjToBool() ? "1" : "0";
|
||||
}
|
||||
else if (type == UtilConstants.DateTimeOffsetType)
|
||||
{
|
||||
var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
|
||||
return "to_date('" + date.ToString("yyyy-MM-dd HH:mm:ss") + "', 'YYYY-MM-DD HH24:MI:SS') ";
|
||||
}
|
||||
else if (type == UtilConstants.StringType || type == UtilConstants.ObjType)
|
||||
{
|
||||
return N + "'" + value.ToString().ToSqlFilter() + "'";
|
||||
|
@ -20,6 +20,8 @@ namespace SqlSugar
|
||||
csharpTypeName = "long";
|
||||
if (csharpTypeName == "Boolean")
|
||||
csharpTypeName = "bool";
|
||||
if (csharpTypeName == "DateTimeOffset")
|
||||
csharpTypeName = "DateTime";
|
||||
var mappings = this.MappingTypes.Where(it => it.Value.ToString().Equals(csharpTypeName, StringComparison.CurrentCultureIgnoreCase));
|
||||
return mappings.HasValue() ? mappings.First().Key : "varchar";
|
||||
}
|
||||
|
@ -17,6 +17,16 @@ namespace SqlSugar
|
||||
public class UtilMethods
|
||||
{
|
||||
|
||||
internal static DateTime ConvertFromDateTimeOffset(DateTimeOffset dateTime)
|
||||
{
|
||||
if (dateTime.Offset.Equals(TimeSpan.Zero))
|
||||
return dateTime.UtcDateTime;
|
||||
else if (dateTime.Offset.Equals(TimeZoneInfo.Local.GetUtcOffset(dateTime.DateTime)))
|
||||
return DateTime.SpecifyKind(dateTime.DateTime, DateTimeKind.Local);
|
||||
else
|
||||
return dateTime.DateTime;
|
||||
}
|
||||
|
||||
internal static object To(object value, Type destinationType)
|
||||
{
|
||||
return To(value, destinationType, CultureInfo.InvariantCulture);
|
||||
|
Loading…
Reference in New Issue
Block a user