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