Чтобы ответить на подобные вопросы, спросите, может ли вещь стоять самостоятельно или она имеет смысл только в контексте чего-то другого. Подписка явно не имеет смысла без клиента и события, и, следовательно, не должно нуждаться в собственном репозитории. Формально, только объекты, которые являются агрегированными корнями, должны иметь репозитории.
Вместо этого предоставьте метод Subscribe для Event, который принимает параметр Customer (или метод Join для Customer, который принимает событие, в зависимости от того, где вы хотите, чтобы он был), и обновите внутреннюю коллекцию для ассоциации. Когда вы сохраняете измененную сущность, ваш репозиторий должен также сохранить изменения в связанных объектах. ORM, такие как Entity Framework, обрабатывают это автоматически для вас.