コード例 #1
0
        private static Expression <Func <TEntity, bool> > Compose <TEntity>(
            Expression <Func <TEntity, bool> > first,
            Expression <Func <TEntity, bool> > second,
            Func <Expression, Expression, BinaryExpression> mergeFunc)
        {
            var secondBody       = ParameterRebinder.Execute(first.Parameters.First(), second.Body);
            var resultExpression =
                Expression.Lambda <Func <TEntity, bool> >(mergeFunc(first.Body, secondBody), first.Parameters);

            return(resultExpression);
        }