mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-15 14:04:44 +08:00
Update exp to sql
This commit is contained in:
parent
18c6c23678
commit
1b479e1788
@ -10,7 +10,24 @@ namespace SqlSugar
|
||||
{
|
||||
public class ExpressionTool
|
||||
{
|
||||
|
||||
internal static string ResolveMemberValue(ExpressionContext context, Expression item, string value)
|
||||
{
|
||||
if (item is MemberExpression member)
|
||||
{
|
||||
if (member.Expression is ParameterExpression parameterExpression)
|
||||
{
|
||||
if (value != null && value.Contains("(") && !value.Contains(" "))
|
||||
{
|
||||
var guid = Guid.NewGuid() + "";
|
||||
var guid2 = Guid.NewGuid() + "";
|
||||
value = value.Replace("(", guid).Replace(")", guid2);
|
||||
value = context.GetTranslationColumnName(value);
|
||||
value = value.Replace(guid, "(").Replace(guid2, ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
internal static Expression GetConditionalExpression(Expression item)
|
||||
{
|
||||
ConstantExpression trueConstant = Expression.Constant(true, typeof(bool));
|
||||
|
@ -386,31 +386,12 @@ namespace SqlSugar
|
||||
this.Start();
|
||||
parameter.IsAppendResult();
|
||||
var value = parameter.CommonTempData.ObjToString();
|
||||
value = ResolveMemberValue(item, value);
|
||||
value =ExpressionTool.ResolveMemberValue(this.Context,item, value);
|
||||
this.Context.Result.Append(this.Context.GetAsString2(asName, value));
|
||||
this.Context.Result.CurrentParameter = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected string ResolveMemberValue(Expression item, string value)
|
||||
{
|
||||
if (item is MemberExpression member)
|
||||
{
|
||||
if (member.Expression is ParameterExpression parameterExpression)
|
||||
{
|
||||
if (value != null && value.Contains("(") && !value.Contains(" "))
|
||||
{
|
||||
var guid = Guid.NewGuid() + "";
|
||||
var guid2 = Guid.NewGuid() + "";
|
||||
value = value.Replace("(", guid).Replace(")", guid2);
|
||||
value = this.Context.GetTranslationColumnName(value);
|
||||
value = value.Replace(guid, "(").Replace(guid2, ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
private void ResolveMemberConst(ExpressionParameter parameter, Expression item, string asName)
|
||||
{
|
||||
this.Expression = item;
|
||||
|
@ -451,6 +451,10 @@ namespace SqlSugar
|
||||
IsMember = parameter.ChildExpression is MemberExpression && !ExpressionTool.IsConstExpression(parameter.ChildExpression as MemberExpression),
|
||||
MemberName = parameter.CommonTempData
|
||||
};
|
||||
if (methodCallExpressionArgs.MemberName is string)
|
||||
{
|
||||
methodCallExpressionArgs.MemberName = ExpressionTool.ResolveMemberValue(this.Context, item, methodCallExpressionArgs.MemberName?.ToString());
|
||||
}
|
||||
if (methodCallExpressionArgs.MemberName is MapperSql)
|
||||
{
|
||||
methodCallExpressionArgs.MemberName = (methodCallExpressionArgs.MemberName as MapperSql).Sql;
|
||||
|
Loading…
Reference in New Issue
Block a user