Exemplo n.º 1
0
        public static void VisitRun()
        {
            int       age   = 100;
            VisitDemo other = new VisitDemo()
            {
                Age = 99
            };
            Expression <Func <VisitDemo, bool> > expr = v => v.Name.Contains("test") && v.Birthday >= DateTime.Now && v.Age <age || age> other.Age;

            Console.WriteLine(expr.Type);
            Console.WriteLine(expr.NodeType);
            Console.WriteLine(expr.Body.NodeType);
            // 判断是值类型后直接取出值,可用作 SQL 里面的字面量。
            var lambda = Expression.Lambda(((expr.Body as BinaryExpression).Right as BinaryExpression).Left as MemberExpression).Compile();

            Console.WriteLine(lambda);
            Console.WriteLine(lambda.DynamicInvoke());
            OtherScope(Expression.Lambda(((expr.Body as BinaryExpression).Right as BinaryExpression).Right as MemberExpression).Compile());
            Console.ReadLine();
        }
Exemplo n.º 2
0
 static void Main(string[] args)
 {
     //SimpleDemo.SimpleRun();
     VisitDemo.VisitRun();
 }