public override void VisitSelectClause(SelectClause selectClause, QueryModel queryModel)
        {
            var visitor = new LiteCoreSelectExpressionVisitor(queryModel.BodyClauses.Count > 1);

            visitor.Visit(selectClause.Selector);
            _query["WHAT"] = visitor.GetJsonExpression();
            SelectResult   = visitor.SelectResult;

            base.VisitSelectClause(selectClause, queryModel);
        }
Example #2
0
        protected override Expression VisitNewArray(NewArrayExpression node)
        {
            SelectResult = new SelectResultListContainer(node.Type.GetElementType());
            foreach (var expr in node.Expressions)
            {
                Visit(expr);
            }

            return(node);
        }
Example #3
0
        protected override Expression VisitNew(NewExpression node)
        {
            SelectResult = new SelectResultAnonymousContainer(node.Constructor);
            foreach (var expr in node.Arguments)
            {
                Visit(expr);
            }

            return(node);
        }
 private unsafe T GetCurrent <T>(ISelectResultContainer resultContainer)
 {
     if (resultContainer != null)
     {
         resultContainer.Populate(_queryEnum->columns, _db.SharedStrings);
         return((T)resultContainer.Results);
     }
     else
     {
         var val = Native.FLArrayIterator_GetValueAt(&_queryEnum->columns, 0);
         using (var reader = new JsonFLValueReader(val, _db.SharedStrings)) {
             var serializer = JsonSerializer.CreateDefault();
             return(serializer.Deserialize <T>(reader));
         }
     }
 }