コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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));
        }