您的位置:首页 > 其它

使用Expression动态构造一个条件表达式

2016-08-16 17:06 302 查看
设有对象:

class Student

{

      pubic string Name{get;set;}

}

查询时,使用t=>t.Name=="jim";但如果条件参数不是固定的,需要动态构造,则不能在代码中这样硬编码了,需要使用Expression动态创建。如下所示:

Expression<Func<Student, bool>> Build(Student student)

 {

            var pe = Expression.Parameter(typeof(Student));

             var p=typeof(TModel).GetProperty("Name");

             var memberExpression = Expression.PropertyOrField(pe, p.Name);

             var equalExpression = Expression.Equal(memberExpression, Expression.Constant(p.GetValue(student,null));

              return  Expression.Lambda<Func<Student, bool>>(equalExpression, pe));

 }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐