Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tự động tạo biểu thức lambda với các hằng số từ các biến

Nó có thể được thực hiện tương đối dễ dàng với ExpressionVisitor đánh giá ConstantExpression thành viên thích điều này:

public static class ExpressionUtils
{
    public static Expression<TDelegate> ReplaceVariablesWithConstants<TDelegate>(this Expression<TDelegate> source)
    {
        return source.Update(
            new ReplaceVariablesWithConstantsVisitor().Visit(source.Body), 
            source.Parameters);
    }

    class ReplaceVariablesWithConstantsVisitor : ExpressionVisitor
    {
        protected override Expression VisitMember(MemberExpression node)
        {
            var expression = Visit(node.Expression);
            if (expression is ConstantExpression)
            {
                var variable = ((ConstantExpression)expression).Value;
                var value = node.Member is FieldInfo ?
                    ((FieldInfo)node.Member).GetValue(variable) :
                    ((PropertyInfo)node.Member).GetValue(variable);
                return Expression.Constant(value, node.Type);
            }
            return node.Update(expression);
        }
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhà tiên tri. Chọn tất cả nếu tham số là null nếu không trả về vấn đề mặt hàng cụ thể

  2. Làm cách nào để kiểm tra xem một cột có bằng blank_clob () trong Oracle hay không?

  3. Cơ sở dữ liệu Oracle Khóa chính Java JDBC

  4. cách đặt lưu lượng phục vụ khi sử dụng kết nối jdbc trong Jmeter

  5. Cách tìm ra / truy xuất tên người dùng Windows trong Oracle APEX