/// <summary> /// Build a predicate for a supplied list of where's (Grouped or not) /// </summary> /// <param name="wheres"></param> /// <returns></returns> public static Expression <Func <T, bool> > BuildPredicate(IEnumerable <WhereExpression> wheres) { var expressionBody = MakePredicateBody(wheres); var param = PropertyCache <T> .GetSourceParameter(); return(Expression.Lambda <Func <T, bool> >(expressionBody, param)); }
/// <summary> /// Create a single predicate for the single set of supplied conditional arguments /// </summary> /// <param name="path"></param> /// <param name="comparison"></param> /// <param name="values"></param> /// <param name="negate"></param> /// <param name="stringComparison"></param> /// <returns></returns> public static Expression <Func <T, bool> > BuildPredicate(string path, Comparison comparison, string?[]?values, bool negate, StringComparison?stringComparison) { var expressionBody = MakePredicateBody(path, comparison, values, negate, stringComparison); var param = PropertyCache <T> .GetSourceParameter(); return(Expression.Lambda <Func <T, bool> >(expressionBody, param)); }