动态lambda 构建

var param = Expression.Parameter(typeof(T));
var datetime1 = Expression.Constant(dt1);
var datetime2 = Expression.Constant(dt2);
var body = Expression.And(
Expression.GreaterThanOrEqual(Expression.Property(param, propertyName), datetime1),
Expression.LessThanOrEqual(Expression.Property(param, propertyName), datetime2));
var e = Expression.Lambda<Func<T, bool>>(body, param);
var q = DataRepository.GetQueryable<T>().Where(e.Compile());

posted @ 2018-04-29 16:16  马肯尼煤牙巴骨  阅读(126)  评论(0编辑  收藏  举报