当前位置: 代码迷 >> .NET Framework >> Entity Framework底层操作打包V2版本(3)
  详细解决方案

Entity Framework底层操作打包V2版本(3)

热度:109   发布时间:2016-05-01 23:36:45.0
Entity Framework底层操作封装V2版本(3)

现在是附加的,组合查询需要的扩展类。大家知道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);        }    }}


 

 

  相关解决方案