# File lib/dm-core/associations/many_to_many.rb, line 52
        def through
          return @through if defined?(@through)

          if options[:through].kind_of?(Associations::Relationship)
            return @through = options[:through]
          end

          repository_name = source_repository_name
          relationships   = source_model.relationships(repository_name)
          name            = through_relationship_name

          @through = relationships[name] ||
            DataMapper.repository(repository_name) do
              source_model.has(min..max, name, through_model, one_to_many_options)
            end

          @through.child_key

          @through
        end