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

View File

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

View File

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