环境:Visual Studio2008 .NET Framework3.5

场合:查询条件不确定,需动态生成

动态构造代码:

 1


实例:
测试数据:
        虚拟实体:

动态构造Lambda表达式    public class Person

      虚拟查找源:

动态构造Lambda表达式        private Dictionary<stringstring> dictionary = new Dictionary<stringstring>() 


 1,无条件查找:    
new ConstructLambda<Person>().GetAndLambdaExpression(new Dictionary<string, string>()).ToString()返回结果:
p => True

  new ConstructLambda<Person>().GetOrLambdaExpression(new Dictionary<string, string>()).ToString()返回结果:
p => False
 2,多条件查找:
  new ConstructLambda<Person>().GetAndLambdaExpression(dictionary).ToString()返回结果:
p => ((((True And (p.Name.ToString() = "JT")) And (p.Sex.ToString() = "男")) And (p.Age.ToString() = "20")) And (p.Birthday.ToString() = "02/02/2008"))

  new ConstructLambda<Person>().GetOrLambdaExpression(dictionary).ToString()返回结果:
p => ((((False Or (p.Name.ToString() = "JT")) Or (p.Sex.ToString() = "男")) Or (p.Age.ToString() = "20")) Or (p.Birthday.ToString() = "02/02/2008"))

动态构造Lambda表达式           //构造常量表达式
动态构造Lambda表达式
            Expression expression_return = Expression.Constant(true);
动态构造Lambda表达式            
//构造表达式参数  类似于p=>动态构造Lambda表达式动态构造Lambda表达式 中的p
动态构造Lambda表达式
            ParameterExpression expression_param = Expression.Parameter(TType, "p");
动态构造Lambda表达式            
//遍历所有关键词 生成查询条件
动态构造Lambda表达式
            foreach (string key in dictionary.Keys)
            }

原创文章,转载请注明出处!
All CopyRight Reserved !

 

主页:http://jingtao.cnblogs.com

QQ:307073463
Email:jingtaodeemail@qq.com
MSN:sunjingtao@live.com

相关文章: