From 780923016a6ed09d0b7455d2ff9baa01df2adef2 Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Tue, 13 Jul 2021 15:18:39 +0800 Subject: [PATCH] Update expressionable --- .../ExpressionableProvider/Expressionable.cs | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/Abstract/ExpressionableProvider/Expressionable.cs b/Src/Asp.Net/SqlSugar/Abstract/ExpressionableProvider/Expressionable.cs index 345958ae2..b69618282 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/ExpressionableProvider/Expressionable.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/ExpressionableProvider/Expressionable.cs @@ -359,6 +359,50 @@ namespace SqlSugar return _exp; } } + public class Expressionable where T : class, new() where T2 : class, new() where T3 : class, new() where T4 : class, new() where T5 : class, new() where T6 : class, new() where T7 : class, new() where T8 : class, new() where T9 : class, new() + { + Expression> _exp = null; + + public Expressionable And(Expression> exp) + { + if (_exp == null) + _exp = exp; + else + _exp = Expression.Lambda>(Expression.AndAlso(_exp.Body, exp.Body), _exp.Parameters); + return this; + } + + public Expressionable AndIF(bool isAnd, Expression> exp) + { + if (isAnd) + And(exp); + return this; + } + + public Expressionable Or(Expression> exp) + { + if (_exp == null) + _exp = exp; + else + _exp = Expression.Lambda>(Expression.OrElse(_exp.Body, exp.Body), _exp.Parameters); + return this; + } + + public Expressionable OrIF(bool isOr, Expression> exp) + { + if (isOr) + Or(exp); + return this; + } + + + public Expression> ToExpression() + { + if (_exp == null) + _exp = (it, t2, t3, t4, T5, t6, t7, t8,t9) => true; + return _exp; + } + } public class Expressionable { public static Expressionable Create() where T : class, new() @@ -393,5 +437,9 @@ namespace SqlSugar { return new Expressionable(); } + public static Expressionable 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() where T7 : class, new() where T8 : class, new() where T9 : class, new() + { + return new Expressionable(); + } } }