public override void Read(object entity, JToken doc, string id, PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context) { // Not reloading value if this is not empty proxy. if (emptyProxy) { ReadValueType(entity, doc); } }
private void CreateReferenceProxies( object proxy, JToken doc, string id, PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context) { AssociationAttribute associationAttr = AssociationAttribute.GetSingle(PropertyInfo); if (associationAttr == null) { if (emptyProxy) { CreateDirectAssociationCollection(proxy, doc, context); } } else { CreateInverseAssociationCollection(proxy, doc, id, preProcess, associationAttr, processingOptions, context); } }
private void CreateInverseAssociationCollection( object proxy, JToken doc, string id, PreProcessInfo preProcess, AssociationAttribute associationAttr, OdmViewProcessingOptions processingOptions, CouchDBContextImpl context) { object keyPart; if (processingOptions.AssoicateCollectionsToLoad.TryGetValue(PropertyInfo.Name, out keyPart)) { Type elementType = PropertyInfo.PropertyType.GenericTypeArguments[0]; string[] inverseKeys = preProcess.Rows .Where(x => x.EntityType.Equals(elementType) && x.Key.MatchRelatedId(id, keyPart)) .Select(x => x.Id) .ToArray(); context.Serializer.SetInverseAssociationCollectionInternal(proxy, PropertyInfo, associationAttr, inverseKeys); } }
public abstract void Read(object entity, JToken doc, string id, PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context);
public override void Read(object entity, JToken doc, string id, PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context) { CreateReferenceProxies(entity, doc, id, preProcess, processingOptions, emptyProxy, context); }
public override void Read(object entity, JToken doc, string id, PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context) { // TODO: implement this. }
public override void Read(object entity, JToken doc, string id, PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context) { ReadArray(entity, doc); }