mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-24 16:18:47 +08:00
Synchronization code
This commit is contained in:
parent
659dbbc3c2
commit
04e31fc4df
@ -738,6 +738,10 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
else if (ec.UnderType == UtilConstants.LongType && dc.Length == 19 && dc.DecimalDigits == 0 && dc.OracleDataType?.EqualCase("number") == true)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return properyTypeName.ToLower() != dataType.ToLower();
|
return properyTypeName.ToLower() != dataType.ToLower();
|
||||||
|
@ -363,6 +363,8 @@ namespace SqlSugar
|
|||||||
method = null;
|
method = null;
|
||||||
if (bindPropertyType ==UtilConstants.IntType&& this.Context.CurrentConnectionConfig.DbType == DbType.OceanBaseForOracle)
|
if (bindPropertyType ==UtilConstants.IntType&& this.Context.CurrentConnectionConfig.DbType == DbType.OceanBaseForOracle)
|
||||||
method = isNullableType ? getMyIntNull : getMyInt;
|
method = isNullableType ? getMyIntNull : getMyInt;
|
||||||
|
if (bindProperyTypeName == "int16")
|
||||||
|
method = null;
|
||||||
break;
|
break;
|
||||||
case CSharpDataType.@bool:
|
case CSharpDataType.@bool:
|
||||||
if (bindProperyTypeName == "bool" || bindProperyTypeName == "boolean")
|
if (bindProperyTypeName == "bool" || bindProperyTypeName == "boolean")
|
||||||
|
@ -12,6 +12,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
private IFastBuilder GetBuider()
|
private IFastBuilder GetBuider()
|
||||||
{
|
{
|
||||||
|
var className = string.Empty;
|
||||||
switch (this.context.CurrentConnectionConfig.DbType)
|
switch (this.context.CurrentConnectionConfig.DbType)
|
||||||
{
|
{
|
||||||
case DbType.MySql:
|
case DbType.MySql:
|
||||||
@ -46,10 +47,14 @@ namespace SqlSugar
|
|||||||
break;
|
break;
|
||||||
case DbType.QuestDB:
|
case DbType.QuestDB:
|
||||||
return new QuestDBFastBuilder(this.entityInfo);
|
return new QuestDBFastBuilder(this.entityInfo);
|
||||||
|
case DbType.Custom:
|
||||||
|
className = InstanceFactory.CustomNamespace + "." + InstanceFactory.CustomDbName + "FastBuilder";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
className = $"SqlSugar.{this.context.CurrentConnectionConfig.DbType}FastBuilder";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var reslut = InstanceFactory.CreateInstance<IFastBuilder>($"SqlSugar.{this.context.CurrentConnectionConfig.DbType}FastBuilder");
|
var reslut = InstanceFactory.CreateInstance<IFastBuilder>(className);
|
||||||
reslut.CharacterSet = this.CharacterSet;
|
reslut.CharacterSet = this.CharacterSet;
|
||||||
reslut.FastEntityInfo = this.entityInfo;
|
reslut.FastEntityInfo = this.entityInfo;
|
||||||
return reslut;
|
return reslut;
|
||||||
|
@ -40,7 +40,7 @@ namespace SqlSugar
|
|||||||
_Filters.RemoveAll(it => it.FilterName == filterName);
|
_Filters.RemoveAll(it => it.FilterName == filterName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SqlFilterItem> GeFilterList
|
public List<SqlFilterItem> GetFilterList
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
@ -1797,9 +1797,9 @@ namespace SqlSugar
|
|||||||
protected void _Filter(string FilterName, bool isDisabledGobalFilter)
|
protected void _Filter(string FilterName, bool isDisabledGobalFilter)
|
||||||
{
|
{
|
||||||
QueryBuilder.IsDisabledGobalFilter = isDisabledGobalFilter;
|
QueryBuilder.IsDisabledGobalFilter = isDisabledGobalFilter;
|
||||||
if (this.Context.QueryFilter.GeFilterList.HasValue() && FilterName.HasValue())
|
if (this.Context.QueryFilter.GetFilterList.HasValue() && FilterName.HasValue())
|
||||||
{
|
{
|
||||||
var list = this.Context.QueryFilter.GeFilterList.Where(it => it.FilterName == FilterName && it.IsJoinQuery == !QueryBuilder.IsSingle());
|
var list = this.Context.QueryFilter.GetFilterList.Where(it => it.FilterName == FilterName && it.IsJoinQuery == !QueryBuilder.IsSingle());
|
||||||
foreach (var item in list)
|
foreach (var item in list)
|
||||||
{
|
{
|
||||||
var filterResult = item.FilterValue(this.Context);
|
var filterResult = item.FilterValue(this.Context);
|
||||||
|
@ -312,9 +312,9 @@ namespace SqlSugar
|
|||||||
var db = Context;
|
var db = Context;
|
||||||
BindingFlags flag = BindingFlags.Instance | BindingFlags.NonPublic| BindingFlags.Public;
|
BindingFlags flag = BindingFlags.Instance | BindingFlags.NonPublic| BindingFlags.Public;
|
||||||
var index = 0;
|
var index = 0;
|
||||||
if (db.QueryFilter.GeFilterList != null)
|
if (db.QueryFilter.GetFilterList != null)
|
||||||
{
|
{
|
||||||
foreach (var item in db.QueryFilter.GeFilterList)
|
foreach (var item in db.QueryFilter.GetFilterList)
|
||||||
{
|
{
|
||||||
if (this.RemoveFilters != null && this.RemoveFilters.Length > 0)
|
if (this.RemoveFilters != null && this.RemoveFilters.Length > 0)
|
||||||
{
|
{
|
||||||
@ -384,9 +384,9 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public virtual void AppendFilter()
|
public virtual void AppendFilter()
|
||||||
{
|
{
|
||||||
if (!IsDisabledGobalFilter && this.Context.QueryFilter.GeFilterList.HasValue())
|
if (!IsDisabledGobalFilter && this.Context.QueryFilter.GetFilterList.HasValue())
|
||||||
{
|
{
|
||||||
var gobalFilterList = this.Context.QueryFilter.GeFilterList.Where(it => it.FilterName.IsNullOrEmpty()).ToList();
|
var gobalFilterList = this.Context.QueryFilter.GetFilterList.Where(it => it.FilterName.IsNullOrEmpty()).ToList();
|
||||||
if (this.RemoveFilters != null && this.RemoveFilters.Length > 0)
|
if (this.RemoveFilters != null && this.RemoveFilters.Length > 0)
|
||||||
{
|
{
|
||||||
gobalFilterList = gobalFilterList.Where(it => !this.RemoveFilters.Contains(it.type)).ToList();
|
gobalFilterList = gobalFilterList.Where(it => !this.RemoveFilters.Contains(it.type)).ToList();
|
||||||
|
@ -432,10 +432,14 @@ namespace SqlSugar
|
|||||||
public virtual ISugarQueryable<T> Queryable<T>(ISugarQueryable<T> queryable)
|
public virtual ISugarQueryable<T> Queryable<T>(ISugarQueryable<T> queryable)
|
||||||
{
|
{
|
||||||
var sqlobj = queryable.ToSql();
|
var sqlobj = queryable.ToSql();
|
||||||
|
var QueryBuilder = queryable.QueryBuilder;
|
||||||
var newQueryable = this.SqlQueryable<object>(sqlobj.Key).AddParameters(sqlobj.Value);
|
var newQueryable = this.SqlQueryable<object>(sqlobj.Key).AddParameters(sqlobj.Value);
|
||||||
var result = newQueryable.Select<T>(newQueryable.QueryBuilder.SelectValue+"");
|
var result = newQueryable.Select<T>(newQueryable.QueryBuilder.SelectValue+"");
|
||||||
result.QueryBuilder.IsSqlQuery = false;
|
result.QueryBuilder.IsSqlQuery = false;
|
||||||
result.QueryBuilder.NoCheckInclude = true;
|
result.QueryBuilder.NoCheckInclude = true;
|
||||||
|
result.QueryBuilder.WhereIndex = (QueryBuilder.WhereIndex + 1);
|
||||||
|
var appendIndex = result.QueryBuilder.Parameters == null ? 1 : result.QueryBuilder.Parameters.Count + 1;
|
||||||
|
result.QueryBuilder.LambdaExpressions.ParameterIndex = (QueryBuilder.LambdaExpressions.ParameterIndex + appendIndex);
|
||||||
result.QueryBuilder.Includes = queryable.QueryBuilder.Includes?.ToList();
|
result.QueryBuilder.Includes = queryable.QueryBuilder.Includes?.ToList();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ using System.Globalization;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
namespace SqlSugar
|
namespace SqlSugar
|
||||||
{
|
{
|
||||||
public class ExpressionTool
|
public class ExpressionTool
|
||||||
@ -878,7 +878,24 @@ namespace SqlSugar
|
|||||||
additem.ShortName = member.Expression + "";
|
additem.ShortName = member.Expression + "";
|
||||||
additem.RightName = member.Member.Name;
|
additem.RightName = member.Member.Name;
|
||||||
additem.RightDbName = context.GetDbColumnName(entityName, additem.RightName);
|
additem.RightDbName = context.GetDbColumnName(entityName, additem.RightName);
|
||||||
|
var isNavMember = member.Expression != null
|
||||||
|
&& ExpressionTool.IsNavMember(context, member.Expression);
|
||||||
additem.LeftNameName = member.Member.Name;
|
additem.LeftNameName = member.Member.Name;
|
||||||
|
if (isNavMember && (context?.SugarContext?.QueryBuilder?.JoinQueryInfos?.Count()??0)==0)
|
||||||
|
{
|
||||||
|
var exp = context.GetCopyContextWithMapping();
|
||||||
|
exp.Resolve(member, ResolveExpressType.FieldSingle);
|
||||||
|
var sql = exp.Result.GetResultString();
|
||||||
|
if (context.IsSingle&& context.CurrentShortName.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
context.SingleTableNameSubqueryShortName=ExpressionTool.GetParameters(member)?.FirstOrDefault()?.Name;
|
||||||
|
}
|
||||||
|
additem.RightDbName = sql;
|
||||||
|
}
|
||||||
|
else if (isNavMember && context?.SugarContext?.QueryBuilder?.JoinQueryInfos?.Any(it=>it.ShortName?.StartsWith("pnv_" + ExpressionTool.GetMemberName(member.Expression)) ==true)==true)
|
||||||
|
{
|
||||||
|
additem.ShortName = "pnv_"+ExpressionTool.GetMemberName(member.Expression);
|
||||||
|
}
|
||||||
//additem.Value = "";
|
//additem.Value = "";
|
||||||
result.Add(additem);
|
result.Add(additem);
|
||||||
}
|
}
|
||||||
|
@ -69,6 +69,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
var isLeft = parameter.IsLeft;
|
var isLeft = parameter.IsLeft;
|
||||||
object value = ExpressionTool.GetValue(expression.Value, this.Context);
|
object value = ExpressionTool.GetValue(expression.Value, this.Context);
|
||||||
|
var isNullStr = value != null && value.ObjToString() == "NULL";
|
||||||
value = ConvetValue(parameter, expression, value);
|
value = ConvetValue(parameter, expression, value);
|
||||||
if (IsEnumString(value))
|
if (IsEnumString(value))
|
||||||
value = ConvertEnum(value);
|
value = ConvertEnum(value);
|
||||||
@ -116,6 +117,11 @@ namespace SqlSugar
|
|||||||
parameter.BaseParameter.ValueIsNull = true;
|
parameter.BaseParameter.ValueIsNull = true;
|
||||||
value = this.Context.DbMehtods.Null();
|
value = this.Context.DbMehtods.Null();
|
||||||
}
|
}
|
||||||
|
if (isNullStr)
|
||||||
|
{
|
||||||
|
this.Context.Result.Append(AppendParameter(value));
|
||||||
|
break;
|
||||||
|
}
|
||||||
AppendValue(parameter, isLeft, value);
|
AppendValue(parameter, isLeft, value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -49,8 +49,8 @@ namespace SqlSugar
|
|||||||
BindingFlags flag = BindingFlags.Instance | BindingFlags.NonPublic;
|
BindingFlags flag = BindingFlags.Instance | BindingFlags.NonPublic;
|
||||||
Type type = this.Context.SubTableType;
|
Type type = this.Context.SubTableType;
|
||||||
var isWhere = HasWhere;
|
var isWhere = HasWhere;
|
||||||
if (db.QueryFilter.GeFilterList != null) {
|
if (db.QueryFilter.GetFilterList != null) {
|
||||||
foreach (var item in db.QueryFilter.GeFilterList)
|
foreach (var item in db.QueryFilter.GetFilterList)
|
||||||
{
|
{
|
||||||
PropertyInfo field = item.GetType().GetProperty("exp", flag);
|
PropertyInfo field = item.GetType().GetProperty("exp", flag);
|
||||||
if (field != null)
|
if (field != null)
|
||||||
|
@ -9,6 +9,6 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
IFilter Add(SqlFilterItem filter);
|
IFilter Add(SqlFilterItem filter);
|
||||||
void Remove(string filterName);
|
void Remove(string filterName);
|
||||||
List<SqlFilterItem> GeFilterList { get; }
|
List<SqlFilterItem> GetFilterList { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -606,6 +606,10 @@ namespace SqlSugar
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (value is byte[] bytes&&bytes.Length==1&& destinationType == typeof(char))
|
||||||
|
{
|
||||||
|
return (char)(bytes)[0];
|
||||||
|
}
|
||||||
var destinationConverter = TypeDescriptor.GetConverter(destinationType);
|
var destinationConverter = TypeDescriptor.GetConverter(destinationType);
|
||||||
if (destinationConverter != null && destinationConverter.CanConvertFrom(value.GetType()))
|
if (destinationConverter != null && destinationConverter.CanConvertFrom(value.GetType()))
|
||||||
return destinationConverter.ConvertFrom(null, culture, value);
|
return destinationConverter.ConvertFrom(null, culture, value);
|
||||||
|
Loading…
Reference in New Issue
Block a user