Update exp to sql

This commit is contained in:
sunkaixuan
2025-09-05 15:57:12 +08:00
parent a008540991
commit 7e58cba239
3 changed files with 10 additions and 10 deletions

View File

@@ -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;
} }
} }
} }

View File

@@ -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;
} }
} }

View File

@@ -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;
} }