# File lib/dm-core/associations/many_to_one.rb, line 178
        def lazy_load(source)
          source_key_different = source_key_different?(source)

          if (loaded?(source) && !source_key_different) || !valid_source?(source)
            return
          end

          # SEL: load all related resources in the source collection
          if source.saved? && (collection = source.collection).size > 1
            eager_load(collection)
          end

          if !loaded?(source) || (source_key_dirty?(source) && source.saved?)
            set!(source, resource_for(source))
          elsif loaded?(source) && source_key_different
            source_key.set(source, target_key.get!(get!(source)))
          end
        end