using System;
using System.Linq.Expressions;
namespace CommonUtil.Db
{
///
/// 表达式工具类
///
///
public class ExpressionUtil where T : class, new()
{
///
///
///
Expression> _exp = null;
///
/// AND 条件
///
///
///
public ExpressionUtil And(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.AndAlso(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行AND条件
///
///
///
///
public ExpressionUtil AndIF(bool isAnd, Expression> exp)
{
if (isAnd)
And(exp);
return this;
}
///
/// OR条件
///
///
///
public ExpressionUtil Or(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.OrElse(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行OR条件
///
///
///
///
public ExpressionUtil OrIF(bool isOr, Expression> exp)
{
if (isOr)
Or(exp);
return this;
}
///
/// 转换表达式
///
///
public Expression> ToExpression()
{
if (_exp == null)
_exp = it => true;
return _exp;
}
}
///
/// 表达式工具类
///
///
///
public class ExpressionUtil where T : class, new() where T2 : class, new()
{
Expression> _exp = null;
///
/// AND条件
///
///
///
public ExpressionUtil And(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.AndAlso(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行AND条件
///
///
///
///
public ExpressionUtil AndIF(bool isAnd, Expression> exp)
{
if (isAnd)
And(exp);
return this;
}
///
/// OR条件
///
///
///
public ExpressionUtil Or(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.OrElse(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行OR条件
///
///
///
///
public ExpressionUtil OrIF(bool isOr, Expression> exp)
{
if (isOr)
Or(exp);
return this;
}
///
/// 转换表达式
///
///
public Expression> ToExpression()
{
if (_exp == null)
_exp = (it, t2) => true;
return _exp;
}
}
///
/// 表达式工具类
///
///
///
///
public class ExpressionUtil where T : class, new() where T2 : class, new() where T3 : class, new()
{
Expression> _exp = null;
///
/// AND条件
///
///
///
public ExpressionUtil And(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.AndAlso(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行AND条件
///
///
///
///
public ExpressionUtil AndIF(bool isAnd, Expression> exp)
{
if (isAnd)
And(exp);
return this;
}
///
/// OR条件
///
///
///
public ExpressionUtil Or(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.OrElse(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行OR条件
///
///
///
///
public ExpressionUtil OrIF(bool isOr, Expression> exp)
{
if (isOr)
Or(exp);
return this;
}
///
/// 转换表达式
///
///
public Expression> ToExpression()
{
if (_exp == null)
_exp = (it, t2, t3) => true;
return _exp;
}
}
///
/// /表达式工具类
///
///
///
///
///
public class ExpressionUtil where T : class, new() where T2 : class, new() where T3 : class, new() where T4 : class, new()
{
Expression> _exp = null;
///
/// AND条件
///
///
///
public ExpressionUtil And(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.AndAlso(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行AND条件
///
///
///
///
public ExpressionUtil AndIF(bool isAnd, Expression> exp)
{
if (isAnd)
And(exp);
return this;
}
///
/// OR条件
///
///
///
public ExpressionUtil Or(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.OrElse(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行OR条件
///
///
///
///
public ExpressionUtil OrIF(bool isOr, Expression> exp)
{
if (isOr)
Or(exp);
return this;
}
///
/// 转换表达式
///
///
public Expression> ToExpression()
{
if (_exp == null)
_exp = (it, t2, t3, t4) => true;
return _exp;
}
}
///
/// 表达式工具类
///
///
///
///
///
///
public class ExpressionUtil where T : class, new() where T2 : class, new() where T3 : class, new() where T4 : class, new() where T5 : class, new()
{
Expression> _exp = null;
///
/// AND条件
///
///
///
public ExpressionUtil And(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.AndAlso(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行AND条件
///
///
///
///
public ExpressionUtil AndIF(bool isAnd, Expression> exp)
{
if (isAnd)
And(exp);
return this;
}
///
/// OR条件
///
///
///
public ExpressionUtil Or(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.OrElse(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行OR条件
///
///
///
///
public ExpressionUtil OrIF(bool isOr, Expression> exp)
{
if (isOr)
Or(exp);
return this;
}
///
/// 转换表达式
///
///
public Expression> ToExpression()
{
if (_exp == null)
_exp = (it, t2, t3, t4, T5) => true;
return _exp;
}
}
///
/// 表达式工具类
///
///
///
///
///
///
///
public class ExpressionUtil where T : class, new() where T2 : class, new() where T3 : class, new() where T4 : class, new() where T5 : class, new() where T6 : class, new()
{
Expression> _exp = null;
///
/// AND条件
///
///
///
public ExpressionUtil And(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.AndAlso(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行AND条件
///
///
///
///
public ExpressionUtil AndIF(bool isAnd, Expression> exp)
{
if (isAnd)
And(exp);
return this;
}
///
/// OR条件
///
///
///
public ExpressionUtil Or(Expression> exp)
{
if (_exp == null)
_exp = exp;
else
_exp = Expression.Lambda>(Expression.OrElse(_exp.Body, exp.Body), _exp.Parameters);
return this;
}
///
/// IF成立则执行OR条件
///
///
///
///
public ExpressionUtil OrIF(bool isOr, Expression> exp)
{
if (isOr)
Or(exp);
return this;
}
///
/// 转换表达式
///
///
public Expression> ToExpression()
{
if (_exp == null)
_exp = (it, t2, t3, t4, T5, t6) => true;
return _exp;
}
}
///
/// 表达式工具类
///
public class ExpressionUtil
{
///
/// 创建表达式
///
///
///
public static ExpressionUtil Create() where T : class, new()
{
return new ExpressionUtil();
}
///
/// 创建表达式
///
///
///
///
public static ExpressionUtil Create() where T : class, new() where T2 : class, new()
{
return new ExpressionUtil();
}
///
/// 创建表达式
///
///
///
///
///
public static ExpressionUtil Create() where T : class, new() where T2 : class, new() where T3 : class, new()
{
return new ExpressionUtil();
}
///
/// 创建表达式
///
///
///
///
///
///
public static ExpressionUtil Create() where T : class, new() where T2 : class, new() where T3 : class, new() where T4 : class, new()
{
return new ExpressionUtil();
}
///
/// 创建表达式
///
///
///
///
///
///
///
public static ExpressionUtil Create() where T : class, new() where T2 : class, new() where T3 : class, new() where T4 : class, new() where T5 : class, new()
{
return new ExpressionUtil();
}
///
/// 创建表达式
///
///
///
///
///
///
///
///
public static ExpressionUtil Create() where T : class, new() where T2 : class, new() where T3 : class, new() where T4 : class, new() where T5 : class, new() where T6 : class, new()
{
return new ExpressionUtil();
}
}
}