mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 10:08:19 +08:00
Update exp to sql
This commit is contained in:
@@ -40,9 +40,9 @@ namespace SqlSugar
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Get Mehtod
|
#region Get Mehtod
|
||||||
protected object GetMemberValue(object value, Expression exp,out bool isConvert)
|
protected object GetMemberValue(object value, Expression exp,out SugarParameter outConvertParameter)
|
||||||
{
|
{
|
||||||
isConvert = false;
|
outConvertParameter = null;
|
||||||
if (exp is MemberExpression)
|
if (exp is MemberExpression)
|
||||||
{
|
{
|
||||||
var member = (exp as MemberExpression);
|
var member = (exp as MemberExpression);
|
||||||
@@ -58,7 +58,7 @@ namespace SqlSugar
|
|||||||
var obj = Activator.CreateInstance(type);
|
var obj = Activator.CreateInstance(type);
|
||||||
var p = ParameterConverter.Invoke(obj, new object[] { value, 100 + this.Context.ParameterIndex }) as SugarParameter;
|
var p = ParameterConverter.Invoke(obj, new object[] { value, 100 + this.Context.ParameterIndex }) as SugarParameter;
|
||||||
value = p.Value;
|
value = p.Value;
|
||||||
isConvert = true;
|
outConvertParameter = p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -38,18 +38,18 @@ namespace SqlSugar
|
|||||||
if (parameter.OppsiteExpression != null)
|
if (parameter.OppsiteExpression != null)
|
||||||
{
|
{
|
||||||
var exp = ExpressionTool.RemoveConvert(parameter.OppsiteExpression);
|
var exp = ExpressionTool.RemoveConvert(parameter.OppsiteExpression);
|
||||||
value = GetMemberValue(value, exp,out bool isConvert);
|
value = GetMemberValue(value, exp,out SugarParameter outConvertParameter);
|
||||||
var valueFullName = value?.GetType()?.FullName;
|
var valueFullName = value?.GetType()?.FullName;
|
||||||
if (valueFullName == "Microsoft.Extensions.Primitives.StringValues")
|
if (valueFullName == "Microsoft.Extensions.Primitives.StringValues")
|
||||||
{
|
{
|
||||||
value = value.ToString();
|
value = value.ToString();
|
||||||
}
|
}
|
||||||
if (isConvert && isSetTempData == false&& exp is MemberExpression m)
|
if (outConvertParameter!=null && isSetTempData == false&& exp is MemberExpression m)
|
||||||
{
|
{
|
||||||
var p = new SugarParameter($"@{m.Member.Name}"+this.Context.ParameterIndex, value);
|
outConvertParameter.ParameterName = $"@{m.Member.Name}" + this.Context.ParameterIndex;
|
||||||
this.Context.ParameterIndex++;
|
this.Context.ParameterIndex++;
|
||||||
this.Context.Parameters.Add(p);
|
this.Context.Parameters.Add(outConvertParameter);
|
||||||
AppendMember(parameter, isLeft, p.ParameterName);
|
AppendMember(parameter, isLeft, outConvertParameter.ParameterName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -516,7 +516,7 @@ namespace SqlSugar
|
|||||||
List<object> result = new List<object>();
|
List<object> result = new List<object>();
|
||||||
foreach (var memItem in (value as IList))
|
foreach (var memItem in (value as IList))
|
||||||
{
|
{
|
||||||
result.Add(GetMemberValue(memItem, args.Last(), out bool b));
|
result.Add(GetMemberValue(memItem, args.Last(), out SugarParameter outConvertParameter));
|
||||||
}
|
}
|
||||||
value = result;
|
value = result;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user