internal override SqlExpression VisitUserColumn(SqlUserColumn suc) { if (this.ingoreExternalRefs && !this.nodeMap.ContainsKey(suc)) { return(suc); } return(new SqlUserColumn(suc.ClrType, suc.SqlType, suc.Query, suc.Name, suc.IsRequired, suc.SourceExpression)); }
internal override SqlExpression VisitUserColumn(SqlUserColumn suc) { SqlExpression expr = base.VisitUserColumn(suc); if (expr == suc) { return(ExtractParameter(expr)); } return(expr); }
internal override SqlUserQuery VisitUserQuery(SqlUserQuery suq) { List <SqlExpression> args = new List <SqlExpression>(suq.Arguments.Count); foreach (SqlExpression expression in suq.Arguments) { args.Add(this.VisitExpression(expression)); } SqlExpression projection = this.VisitExpression(suq.Projection); SqlUserQuery query = new SqlUserQuery(suq.QueryText, projection, args, suq.SourceExpression); this.nodeMap[suq] = query; foreach (SqlUserColumn column in suq.Columns) { SqlUserColumn item = new SqlUserColumn(column.ClrType, column.SqlType, column.Query, column.Name, column.IsRequired, column.SourceExpression); this.nodeMap[column] = item; query.Columns.Add(item); } return(query); }
internal virtual SqlExpression VisitUserColumn(SqlUserColumn suc) { return(suc); }