BuildQueryClause() public method

public BuildQueryClause ( ResolveContext ec, Expression lSide, Parameter parameter ) : Expression
ec ResolveContext
lSide Expression
parameter Parameter
return Expression
Beispiel #1
0
        public virtual Expression BuildQueryClause(ResolveContext ec, Expression lSide, Parameter parameter)
        {
            Arguments args = null;

            CreateArguments(ec, parameter, ref args);
            lSide = CreateQueryExpression(lSide, args);
            if (next != null)
            {
                parameter = CreateChildrenParameters(parameter);

                Select s = next as Select;
                if (s == null || s.IsRequired(parameter))
                {
                    return(next.BuildQueryClause(ec, lSide, parameter));
                }

                // Skip transparent select clause if any clause follows
                if (next.next != null)
                {
                    return(next.next.BuildQueryClause(ec, lSide, parameter));
                }
            }

            return(lSide);
        }
Beispiel #2
0
        public virtual Expression BuildQueryClause(ResolveContext ec, Expression lSide)
        {
            Arguments args;

            CreateArguments(ec, out args);
            lSide = CreateQueryExpression(lSide, args);
            if (next != null)
            {
                Select s = next as Select;
                if (s == null || s.IsRequired)
                {
                    return(next.BuildQueryClause(ec, lSide));
                }

                // Skip transparent select clause if any clause follows
                if (next.next != null)
                {
                    return(next.next.BuildQueryClause(ec, lSide));
                }
            }

            return(lSide);
        }