private StreamResult <T> CreateStreamResult(BlittableJsonReaderObject json)
            {
                var metadata     = json.GetMetadata();
                var changeVector = metadata.GetChangeVector();

                //MapReduce indexes return reduce results that don't have @id property
                metadata.TryGetId(out string id);
                var entity = QueryOperation.Deserialize <T>(id, json, metadata, _fieldsToFetch, true, _parent);

                var streamResult = new StreamResult <T>
                {
                    ChangeVector = changeVector,
                    Id           = id,
                    Document     = entity,
                    Metadata     = new MetadataAsDictionary(metadata)
                };

                return(streamResult);
            }
예제 #2
0
            private StreamResult <T> CreateStreamResult(BlittableJsonReaderObject json)
            {
                var metadata     = json.GetMetadata();
                var changeVector = BlittableJsonExtensions.GetChangeVector(metadata);
                var id           = metadata.GetId();

                json = _parent.Context.ReadObject(json, id);
                var entity = QueryOperation.Deserialize <T>(id, json, metadata, _projectionFields, true, _parent);

                var streamResult = new StreamResult <T>
                {
                    ChangeVector = changeVector,
                    Id           = id,
                    Document     = entity,
                    Metadata     = new MetadataAsDictionary(metadata)
                };

                return(streamResult);
            }
예제 #3
0
        private StreamResult <T> CreateStreamResult <T>(BlittableJsonReaderObject json, string[] projectionFields)
        {
            var metadata     = json.GetMetadata();
            var changeVector = BlittableJsonExtensions.GetChangeVector(metadata);
            var id           = metadata.GetId();

            //TODO - Investigate why ConvertToEntity fails if we don't call ReadObject before
            json = Context.ReadObject(json, id);
            var entity = QueryOperation.Deserialize <T>(id, json, metadata, projectionFields, true, this);

            var streamResult = new StreamResult <T>
            {
                ChangeVector = changeVector,
                Id           = id,
                Document     = entity,
                Metadata     = new MetadataAsDictionary(metadata)
            };

            return(streamResult);
        }
예제 #4
0
        private StreamResult <T> CreateStreamResult <T>(BlittableJsonReaderObject json, FieldsToFetchToken fieldsToFetch)
        {
            var metadata     = json.GetMetadata();
            var changeVector = metadata.GetChangeVector();

            //MapReduce indexes return reduce results that don't have @id property
            metadata.TryGetId(out string id);

            //TODO - Investigate why ConvertToEntity fails if we don't call ReadObject before
            json = Context.ReadObject(json, id);
            var entity = QueryOperation.Deserialize <T>(id, json, metadata, fieldsToFetch, true, this);

            var streamResult = new StreamResult <T>
            {
                ChangeVector = changeVector,
                Id           = id,
                Document     = entity,
                Metadata     = new MetadataAsDictionary(metadata)
            };

            return(streamResult);
        }
예제 #5
0
        private T GetRevision <T>(BlittableJsonReaderObject document)
        {
            if (document == null)
            {
                return(default(T));
            }

            var metadata = document.GetMetadata();
            var id       = metadata.GetId();
            var entity   = (T)_session.EntityToBlittable.ConvertToEntity(typeof(T), id, ref document, !this._session.NoTracking);

            _session.DocumentsByEntity[entity] = new DocumentInfo
            {
                Id           = id,
                ChangeVector = metadata.GetChangeVector(),
                Document     = document,
                Metadata     = metadata,
                Entity       = entity
            };

            return(entity);
        }