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);
- }
- }
- }
http://blog.csdn.net/jacky4955/article/details/25412261