Inheritance: QueryNodeVisitor
Ejemplo n.º 1
0
        public void Delete <T>(Expression <Func <T, bool> > query, bool softCommit = false)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var translator = new LinqToSolrQueryTranslator(this, typeof(T));
            var q          = Evaluator.PartialEval(query);
            var queryToStr = translator.Translate(BooleanVisitor.Process(q));

            PerformDelete <T>(queryToStr, softCommit);
        }
Ejemplo n.º 2
0
        internal ILinqToSolrService GetSolrQuery(Expression expression)
        {
            var elementType = TypeSystem.GetElementType(expression.Type);

            Service.ElementType = elementType;
            var qt = new LinqToSolrQueryTranslator(Service);

#if PORTABLE || NETCORE
            expression = Evaluator.PartialEval(expression, e => e.NodeType != ExpressionType.Parameter && !typeof(IQueryable).GetTypeInfo().IsAssignableFrom(e.Type.GetTypeInfo()));
#else
            expression = Evaluator.PartialEval(expression, e => e.NodeType != ExpressionType.Parameter && !typeof(IQueryable).IsAssignableFrom(e.Type));
#endif

            Service.CurrentQuery           = Service.CurrentQuery ?? new LinqToSolrQuery();
            Service.CurrentQuery.FilterUrl = qt.Translate(BooleanVisitor.Process(expression));


            return(Service);
        }