public BuildQueryClause ( ResolveContext ec, Expression lSide, Parameter parameter ) : Expression | ||
ec | ResolveContext | |
lSide | Expression | |
parameter | Parameter | |
리턴 | Expression |
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;
}
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); }