private T Deserialize(JObject result) { var metadata = result.Value <JObject>("@metadata"); result.Remove("@metadata"); if (projectionFields != null && projectionFields.Length > 0 || // we asked for a projection directly from the index metadata == null) // we aren't querying a document, we are probably querying a map reduce index result { return((T)session.Conventions.CreateSerializer().Deserialize(new JTokenReader(result), typeof(T))); } return(session.TrackEntity <T>(metadata.Value <string>("@id"), result, metadata)); }
private T Deserialize(JObject result) { var metadata = result.Value <JObject>("@metadata"); if (projectionFields != null && projectionFields.Length > 0 || // we asked for a projection directly from the index metadata == null) // we aren't querying a document, we are probably querying a map reduce index result { return((T) new JsonSerializer { ContractResolver = session.Conventions.JsonContractResolver, ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor, Converters = { new JsonEnumConverter(), } }.Deserialize(new JTokenReader(result), typeof(T))); } return(session.TrackEntity <T>(metadata.Value <string>("@id"), result, metadata)); }