private Expression ExpressionTree(ParameterExpression parm, CMSDataContext Db) { Expression expr = null; if (IsGroup) { foreach (var clause in Clauses.OrderBy(c => c.ClauseOrder)) { if (expr == null) { expr = clause.ExpressionTree(parm, Db); } else { var right = clause.ExpressionTree(parm, Db); if (right != null && expr != null) { if (AnyFalseTrue) { expr = Expression.Or(expr, right); } else { expr = Expression.And(expr, right); } } } } return(expr); } expr = Compare.Expression(this, parm, Db); if (InAllAnyFalse) { expr = Expression.Not(expr); } return(expr); }