public static Expression <Func <T, bool> > Or <T>(this Expression <Func <T, bool> > self, Expression <Func <T, bool> > expression)
     where T : class
 {
     return(self == null ? expression : self.CombineBinary(expression, Expression.OrElse));
 }
 public static Expression <Func <T, bool> > CombineWithConst <T, R>(this Expression <Func <T, R> > self, R value, Func <Expression, Expression, BinaryExpression> combinator, ParameterExpression[] parameters = null)
     where T : class
 {
     return(self.CombineBinary(p => value, combinator));
 }