Это нарушает концепцию совокупного корня.Не существует «правильного» способа сделать это.Либо вы решаете просто игнорировать сводные корневые правила и обращаться к объектам напрямую, либо решаете следовать совокупным правилам и переходите к объекту из корня.Вы можете сделать это так или иначе, на самом деле больше ничего не возможно, так что нет какой-либо третьей альтернативы, которая представляет «правильный» способ как получить прямой доступ к объекту, так и подчиниться совокупным корневым правилам.
Это вопрос выбора.Лично я бы нарушил правила совокупного корня, если бы для этого была какая-то веская причина.Если список не огромен, то, что вы предлагаете, вероятно, в основном удобно.Это действительно даже так удобно?Вы должны создать и поддерживать другой репозиторий и т. Д. И т. Д.
Дело в том, что как только вы создадите этот репозиторий опций, люди будут его использовать.Где и когда.И затем есть следующий сценарий, конечно, у вас есть другие подобные ситуации.Давайте создадим еще один репозиторий.Мы сделали это там, почему не здесь тоже?Довольно скоро у вас также может быть хранилище для каждого объекта, что в конечном итоге и будет происходить в любом случае.
Не говорю, что это хорошо или плохо.Я работал над приложениями раньше, где не было формальных совокупных корней.Все, что я говорю, это то, что это не нечто среднее.Если вы собираетесь использовать их вообще, вам нужно быть сторонником правил агрегированных корней. Вы либо узнаете агрегированные корни, и всегда следуете правилам (за исключением, может быть, исключительных обстоятельств, которые вы не описали)или вы можете их вообще не иметь.
Согласованность, вероятно, так же важна.Я бы либо наблюдал за совокупными корнями, либо покончил бы с потенциальным бременем, которое они могут представлять в целом.