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

          @through = options[:through]

          if @through.kind_of?(Associations::Relationship)
            return @through
          end

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

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

          @through.child_key

          @through
        end