protected internal virtual Expression VisitSqlFunction(SqlFunctionExpression sqlFunction) { Expression obj = Visit(sqlFunction.Object); ReadOnlyCollection <Expression> args = Visit(sqlFunction.Arguments); if (args != sqlFunction.Arguments || obj != sqlFunction.Object) { return(new SqlFunctionExpression(sqlFunction.Type, obj, sqlFunction.SqlFunction, args)); } return(sqlFunction); }
protected internal override Expression VisitSqlFunction(SqlFunctionExpression sqlFunction) { Expression obj = MakeSqlValue(Visit(sqlFunction.Object)); ReadOnlyCollection <Expression> args = Visit(sqlFunction.Arguments, a => MakeSqlValue(Visit(a))); if (args != sqlFunction.Arguments || obj != sqlFunction.Object) { return(new SqlFunctionExpression(sqlFunction.Type, obj, sqlFunction.SqlFunction, args)); } return(sqlFunction); }
protected internal override Expression VisitSqlFunction(SqlFunctionExpression sqlFunction) { if (sqlFunction.Object != null) { Visit(sqlFunction.Object); sb.Append("."); } 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); }
protected virtual bool CompareSqlFunction(SqlFunctionExpression a, SqlFunctionExpression b) { return(a.SqlFunction == b.SqlFunction && Compare(a.Object, b.Object) && CompareList(a.Arguments, b.Arguments, Compare)); }