def load_property(obj, nav_prop)
    raise NotSupportedError, "You cannot load a property on an entity that isn't tracked" if obj.send(:__metadata).nil?
    raise ArgumentError, "'#{nav_prop}' is not a valid navigation property" unless obj.respond_to?(nav_prop.to_sym)
    raise ArgumentError, "'#{nav_prop}' is not a valid navigation property" unless @class_metadata[obj.class.to_s][nav_prop].nav_prop
    results = OData::Resource.new(build_load_property_uri(obj, nav_prop), @rest_options).get
    prop_results = build_classes_from_result(results.body)
    obj.send "#{nav_prop}=", (singular?(nav_prop) ? prop_results.first : prop_results)
  end
def load_property(obj, nav_prop)
    raise NotSupportedError, "You cannot load a property on an entity that isn't tracked" if obj.send(:__metadata).nil?
    raise ArgumentError, "'#{nav_prop}' is not a valid navigation property" unless obj.respond_to?(nav_prop.to_sym)
    raise ArgumentError, "'#{nav_prop}' is not a valid navigation property" unless @class_metadata[obj.class.to_s][nav_prop].nav_prop
    results = OData::Resource.new(build_load_property_uri(obj, nav_prop), @rest_options).get
    prop_results = build_classes_from_result(results.body)
    obj.send "#{nav_prop}=", (singular?(nav_prop) ? prop_results.first : prop_results)
  end
Lazy loads a navigation property on a model

 @param [Object] obj the object to fill
 @param [String] nav_prop the navigation property to fill

 @raise [NotSupportedError] if the `obj` isn't a tracked entity
 @raise [ArgumentError] if the `nav_prop` isn't a valid navigation property