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