/// <summary> /// 解析表达式 /// </summary> /// <param name="re">当前解析对象</param> /// <param name="exp">要解析的表达式</param> /// <param name="db">数据库访问对象</param> public void ResolveExpression(ResolveExpress re, Expression exp, SqlSugarClient db) { DB = db; //初始化表达式 Init(re, exp); //设置PageSize foreach (var par in Paras) { SqlSugarTool.SetParSize(par); } }
/// <summary> /// 初始化表达式 /// </summary> /// <param name="re"></param> /// <param name="exp"></param> private void Init(ResolveExpress re, Expression exp) { ResolveExpress.MemberType type = ResolveExpress.MemberType.None; //解析表达式 this.SqlWhere = string.Format(" AND {0} ", re.CreateSqlElements(exp, ref type, true)); //还原bool值 foreach (var item in ConstantBoolDictionary) { if (this.SqlWhere.IsValuable()) { this.SqlWhere = this.SqlWhere.Replace(item.Key.ToString(), item.ConditionalValue); } } }