Ejemplo n.º 1
0
        /// <summary>
        /// Executes the given Expression and returns the result.
        /// </summary>
        /// <param name="expression">
        /// The Expression to execute.
        /// </param>
        /// <returns>
        /// An object that contains the result of the expression.
        /// </returns>
        private object ExecuteQueryWorker(Expression expression)
        {
            Type enumerableType = Queryable.GetType().GetEnumerableElementType();
            Type executorType   = typeof(LuceneQueryExecutor <>).MakeGenericType(enumerableType);

            LuceneQueryExecutor executor = (LuceneQueryExecutor)Activator.CreateInstance(executorType,
                                                                                         Searcher,
                                                                                         FieldNameResolver);

            return(executor.Execute(expression));
        }
        private LuceneQueryable <T> CreateQueryable <T>(Func <T> factory, Context context, IDocumentMapper <T> mapper)
        {
            var executor = new LuceneQueryExecutor <T>(context, factory, mapper);

            return(new LuceneQueryable <T>(queryParser, executor));
        }