public static HashSet <ColumnExpression> Gather(Expression expression)
        {
            var visitor = new ReferencedColumnGatherer();

            visitor.Visit(expression);
            return(visitor.columns);
        }
示例#2
0
        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);
        }