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