Entity Framework底层操作封装V2版本(3)

来源:互联网 发布:java就业培训学校 编辑:程序博客网 时间:2024/05/13 07:52

现在是附加的,组合查询需要的扩展类。大家知道lanmda表达式的组合条件比较麻烦,所以就加了一样一个类,方便进行组合查询:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Linq.Expressions;namespace JFrame.AccessCommon{    public static class PredicateExtensions    {        public static Expression<Func<T, bool>> True<T>()        {            return f => true;        }        public static Expression<Func<T, bool>> False<T>()        {            return f => false;        }        public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> expression1, Expression<Func<T, bool>> expression2)        {            var invokedExpression = Expression.Invoke(expression2, expression1.Parameters.Cast<Expression>());            return Expression.Lambda<Func<T, bool>>(Expression.Or(expression1.Body, invokedExpression), expression1.Parameters);        }        public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expression1, Expression<Func<T, bool>> expression2)        {            var invokedExpression = Expression.Invoke(expression2, expression1.Parameters.Cast<Expression>());             return Expression.Lambda<Func<T, bool>>(Expression.And(expression1.Body, invokedExpression), expression1.Parameters);        }    }}


 

 

2 0