using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Text.RegularExpressions; namespace SqlSugar { public class SubHaving : ISubOperation { public bool HasWhere { get; set; } public string Name { get { return "Having"; } } public Expression Expression { get; set; } public int Sort { get { return 480; } } public ExpressionContext Context { get; set; } public string GetValue(Expression expression) { var exp = expression as MethodCallExpression; var argExp = exp.Arguments[0]; var result = "Having " + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple); var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); return result; } } }