mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-18 17:48:11 +08:00
Update exp to sql
This commit is contained in:
@@ -40,9 +40,9 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#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)
|
||||
{
|
||||
var member = (exp as MemberExpression);
|
||||
@@ -58,7 +58,7 @@ namespace SqlSugar
|
||||
var obj = Activator.CreateInstance(type);
|
||||
var p = ParameterConverter.Invoke(obj, new object[] { value, 100 + this.Context.ParameterIndex }) as SugarParameter;
|
||||
value = p.Value;
|
||||
isConvert = true;
|
||||
outConvertParameter = p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -38,18 +38,18 @@ namespace SqlSugar
|
||||
if (parameter.OppsiteExpression != null)
|
||||
{
|
||||
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;
|
||||
if (valueFullName == "Microsoft.Extensions.Primitives.StringValues")
|
||||
{
|
||||
value = value.ToString();
|
||||
}
|
||||
if (isConvert && isSetTempData == false&& exp is MemberExpression m)
|
||||
{
|
||||
var p = new SugarParameter($"@{m.Member.Name}"+this.Context.ParameterIndex, value);
|
||||
if (outConvertParameter!=null && isSetTempData == false&& exp is MemberExpression m)
|
||||
{
|
||||
outConvertParameter.ParameterName = $"@{m.Member.Name}" + this.Context.ParameterIndex;
|
||||
this.Context.ParameterIndex++;
|
||||
this.Context.Parameters.Add(p);
|
||||
AppendMember(parameter, isLeft, p.ParameterName);
|
||||
this.Context.Parameters.Add(outConvertParameter);
|
||||
AppendMember(parameter, isLeft, outConvertParameter.ParameterName);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@@ -516,7 +516,7 @@ namespace SqlSugar
|
||||
List<object> result = new List<object>();
|
||||
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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user