protected internal override Expression VisitSqlCast(SqlCastExpression castExpr) { var expression = MakeSqlValue(Visit(castExpr.Expression)); if (expression != castExpr.Expression) { return(new SqlCastExpression(castExpr.Type, expression, castExpr.SqlDbType)); } return(castExpr); }
protected internal virtual Expression VisitSqlCast(SqlCastExpression castExpr) { var expression = Visit(castExpr.Expression); if (expression != castExpr.Expression) { return(new SqlCastExpression(castExpr.Type, expression, castExpr.DbType)); } return(castExpr); }
protected internal override Expression VisitSqlCast(SqlCastExpression castExpr) { sb.Append("CAST("); Visit(castExpr.Expression); sb.Append(" as "); sb.Append(castExpr.SqlDbType.ToString().ToUpperInvariant()); if (castExpr.SqlDbType == SqlDbType.NVarChar || castExpr.SqlDbType == SqlDbType.VarChar) { sb.Append("(MAX)"); } sb.Append(")"); return(castExpr); }
protected internal override Expression VisitSqlCast(SqlCastExpression castExpr) { sb.Append("CAST("); Visit(castExpr.Expression); sb.Append(" as "); sb.Append(castExpr.DbType.ToString(schema.Settings.IsPostgres)); if (!schema.Settings.IsPostgres && (castExpr.DbType.SqlServer == SqlDbType.NVarChar || castExpr.DbType.SqlServer == SqlDbType.VarChar)) { sb.Append("(MAX)"); } sb.Append(')'); return(castExpr); }
protected internal override Expression VisitSqlCast(SqlCastExpression castExpr) { var expression = Visit(castExpr.Expression); if (expression.Type.UnNullify() == typeof(bool) && castExpr.Type.UnNullify() != typeof(int)) { return(new SqlCastExpression(castExpr.Type, new SqlCastExpression(typeof(int), expression), castExpr.DbType)); } if (expression != castExpr.Expression) { return(new SqlCastExpression(castExpr.Type, expression, castExpr.DbType)); } return(castExpr); }
protected virtual bool CompareSqlCast(SqlCastExpression a, SqlCastExpression b) { return(a.DbType.Equals(b.DbType) && Compare(a.Expression, b.Expression)); }
protected virtual bool CompareSqlCast(SqlCastExpression a, SqlCastExpression b) { return(a.SqlDbType == b.SqlDbType && Compare(a.Expression, b.Expression)); }