protected internal virtual Expression VisitSqlTableValuedFunction(SqlTableValuedFunctionExpression sqlFunction) { ReadOnlyCollection <Expression> args = Visit(sqlFunction.Arguments); if (args != sqlFunction.Arguments) { return(new SqlTableValuedFunctionExpression(sqlFunction.SqlFunction, sqlFunction.ViewTable, sqlFunction.SingleColumnType, sqlFunction.Alias, args)); } return(sqlFunction); }
protected internal override Expression VisitSqlTableValuedFunction(SqlTableValuedFunctionExpression sqlFunction) { ReadOnlyCollection <Expression> args = Visit(sqlFunction.Arguments); Alias newAlias = aliasMap.TryGetC(sqlFunction.Alias) ?? sqlFunction.Alias; if (args != sqlFunction.Arguments || sqlFunction.Alias != newAlias) { return(new SqlTableValuedFunctionExpression(sqlFunction.SqlFunction, sqlFunction.ViewTable, sqlFunction.SingleColumnType, newAlias, args)); } return(sqlFunction); }
protected override Expression VisitSqlTableValuedFunction(SqlTableValuedFunctionExpression sqlFunction) { var columns = CurrentScope.Keys.Where(ce => ce.Alias == sqlFunction.Alias).ToList(); CurrentScope.SetRange(columns, columns.Cast<Expression>()); ReadOnlyCollection<Expression> args = sqlFunction.Arguments.NewIfChange(a => Visit(a)); if (args != sqlFunction.Arguments) return new SqlTableValuedFunctionExpression(sqlFunction.SqlFunction, sqlFunction.Table, sqlFunction.Alias, args); return sqlFunction; }
protected internal override Expression VisitSqlTableValuedFunction(SqlTableValuedFunctionExpression sqlFunction) { var columns = CurrentScope.Keys.Where(ce => ce.Alias == sqlFunction.Alias).ToList(); CurrentScope.SetRange(columns, columns); ReadOnlyCollection <Expression> args = Visit(sqlFunction.Arguments); if (args != sqlFunction.Arguments) { return(new SqlTableValuedFunctionExpression(sqlFunction.SqlFunction, sqlFunction.ViewTable, sqlFunction.SingleColumnType, sqlFunction.Alias, args)); } return(sqlFunction); }
protected override Expression VisitSqlTableValuedFunction(SqlTableValuedFunctionExpression sqlFunction) { ReadOnlyCollection<Expression> args = sqlFunction.Arguments.NewIfChange(a => MakeSqlValue(Visit(a))); if (args != sqlFunction.Arguments) return new SqlTableValuedFunctionExpression(sqlFunction.SqlFunction, sqlFunction.Table, sqlFunction.Alias, args); return sqlFunction; }
protected internal override Expression VisitSqlTableValuedFunction(SqlTableValuedFunctionExpression sqlFunction) { this.aliases.Add(sqlFunction.Alias); return(base.VisitSqlTableValuedFunction(sqlFunction)); }
protected override Expression VisitSqlTableValuedFunction(SqlTableValuedFunctionExpression sqlFunction) { sb.Append(sqlFunction.SqlFunction); sb.Append("("); for (int i = 0, n = sqlFunction.Arguments.Count; i < n; i++) { Expression exp = sqlFunction.Arguments[i]; if (i > 0) sb.Append(", "); this.Visit(exp); } sb.Append(")"); return sqlFunction; }