public IEnumerable <T> ExecuteCollection <T>(QueryModel queryModel) { var visitor = new QueryVisitor(_typeDescription); visitor.VisitQueryModel(queryModel); Expression = visitor.RootExpression; return(Enumerable.Empty <T>()); }
// 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)); }
// 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))); }
// 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"); }