Ejemplo n.º 1
0
        public IEnumerable <T> ExecuteCollection <T>(QueryModel queryModel)
        {
            var visitor = new QueryVisitor(_typeDescription);

            visitor.VisitQueryModel(queryModel);

            Expression = visitor.RootExpression;

            return(Enumerable.Empty <T>());
        }
Ejemplo n.º 2
0
        // Executes a query with a collection result.
        public IEnumerable <T> ExecuteCollection <T>(QueryModel queryModel)
        {
            var visitor = new QueryVisitor(_typeDescription);

            visitor.VisitQueryModel(queryModel);

            var expression = visitor.RootExpression;

            _customAction?.Invoke(expression);

            Dbg.Trace($"linq provider produced expression {expression}");

            return(_client.GetMany <T>(visitor.RootExpression));
        }
Ejemplo n.º 3
0
        // Executes a query with a collection result.
        public IEnumerable <T> ExecuteCollection <T>(QueryModel queryModel)
        {
            var visitor = new QueryVisitor(_collectionName, _collectionSchema);

            visitor.VisitQueryModel(queryModel);

            var expression = visitor.RootExpression;

            _customAction?.Invoke(expression);

            Dbg.Trace($"linq provider produced expression {expression}");

            return(_client.GetMany(visitor.RootExpression, _sessionId).Select(ri => FromJObject <T>(ri.Item)));
        }
Ejemplo n.º 4
0
        // Executes a query with a scalar result, i.e. a query that ends with a result operator such as Count, Sum, or Average.
        public T ExecuteScalar <T>(QueryModel queryModel)
        {
            var visitor = new QueryVisitor(_typeDescription);

            visitor.VisitQueryModel(queryModel);

            var expression = visitor.RootExpression;

            _customAction?.Invoke(expression);

            Dbg.Trace($"linq provider produced expression {expression}");

            if (expression.CountOnly)
            {
                return((T)(object)_client.EvalQuery(expression).Value);
            }

            throw new NotSupportedException("Only Count scalar method is implemented");
        }