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); }
protected override Expression VisitNewArray(NewArrayExpression node) { SelectResult = new SelectResultListContainer(node.Type.GetElementType()); foreach (var expr in node.Expressions) { Visit(expr); } return(node); }
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)); } } }