示例#1
0
        private void GetString(StringBuilder builder, IDictionary <String, Object> ps, Expression exp)
        {
            exp = Flatten(exp);
            if (exp == null)
            {
                return;
            }

            // 递归构建,下级运算符优先级较低时加括号
            var bracket = false;

            if (exp is WhereExpression where)
            {
                if (where.Empty)
                {
                    return;
                }

                if (where.Operator > Operator)
                {
                    bracket = true;
                }
            }

            if (bracket)
            {
                builder.Append("(");
            }
            exp.GetString(builder, ps);
            if (bracket)
            {
                builder.Append(")");
            }
        }
示例#2
0
        private void GetString(IDatabase db, StringBuilder builder, IDictionary <String, Object> ps, Expression exp)
        {
            exp = Flatten(exp);
            if (exp == null || exp.IsEmpty)
            {
                return;
            }

            // 递归构建,下级运算符优先级较低时加括号
            var bracket = false;

            if (exp is WhereExpression where)
            {
                //if (where.IsEmpty) return;

                if (where.Operator > Operator)
                {
                    bracket = true;
                }
            }

            if (bracket)
            {
                builder.Append('(');
            }
            exp.GetString(db, builder, ps);
            if (bracket)
            {
                builder.Append(')');
            }
        }