diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve_Helper.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve_Helper.cs index d8b6f1fd1..08bbcf6c5 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve_Helper.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve_Helper.cs @@ -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; } } } diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MemberConstExpressionResolve.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MemberConstExpressionResolve.cs index ccdb43783..cfa3d1f44 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MemberConstExpressionResolve.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MemberConstExpressionResolve.cs @@ -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; } } diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs index 7617ee002..9e708fa44 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs @@ -516,7 +516,7 @@ namespace SqlSugar List result = new List(); 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; }