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); }