Я думаю, это зависит от того, как вы собираетесь получить доступ к вашим данным. Изменения - это то, что вы всегда будете смотреть на тему с ее комментариями и наоборот для элементов интерфейса Like (32) Comments.
Поэтому ваша тема становится Совокупным корнем , и для этого подхода вам нужен только один репозиторий.
Одна вещь, на которую следует обратить внимание: если у вас есть много мелких вещей, вам нужен только очень узкий доступ, например список опций для выпадающего списка, для которого вы действительно не хотите иметь полноценный репозиторий для этого. Проблема заключается в том, что, пройдя 20 объектов, вы получите 20 интерфейсов и 20 хранилищ для размышлений в своем решении.
Очень прагматично иметь только репозитории для ваших совокупных корней и хранить вместе репозитории других типов значений. Например DropdownlistRepository или что-то.
Наконец, на этапе вашего проекта были проблемы с производительностью, просто неважно, и получение целого графа объектов для «Темы», вероятно, не так уж плохо с точки зрения производительности. Не усложняйте ситуацию: если вы используете маппер ORM, он должен уметь обрабатывать, предоставляя вам тему каждый раз, когда вам это нужно, со всеми его дочерними объектами, загруженными лениво.