public static HashSet <ColumnExpression> Gather(Expression expression) { var visitor = new ReferencedColumnGatherer(); visitor.Visit(expression); return(visitor.columns); }
protected override Expression VisitSelect(SelectExpression select) { ILookup <TableAlias, ColumnExpression> saveColumns = columns; columns = ReferencedColumnGatherer.Gather(select).ToLookup(c => c.Alias); JoinType?saveLastJoin = lastJoin; lastJoin = null; Expression result = base.VisitSelect(select); columns = saveColumns; lastJoin = saveLastJoin; return(result); }