Это больше решение, если вы действительно хотите загружать полные деревья в любое время.
Если вы анализируете то, что вы определяете как совокупный корень, то вы обнаружите много раздувания по мере того, какбудет загружать полные деревья объектов каждый раз, когда вы их загружаете.
Не существует единого подхода, подходящего ко всему этому, но, по моему мнению, ваши отношения должны быть все сопоставлены с вашими совокупными корнями, где это возможно, но в некоторых случаях часть этого дерева может рассматриваться какагрегатный root при необходимости.
Если вы находитесь в веб-среде, это решение отличается от настольного приложения.
В Интернете вы начинаете снова каждую загрузку страницы, поэтому у меня, как правило, есть хорошая МОДЕЛЬ для сопоставления отношений и репозиторий для почти каждой сущности (поскольку мне всегда нужно сохранять лишь небольшую часть чего-либоиз какого-то всплывающего окна) и извлеките его вместе со службами, которые выполняются для совокупного корня.Это делает код предсказуемым и останавливает те ... "ммм ... это корень" моменты или репозитории, которые становятся неуправляемыми.
Тогда у меня будут мапперы, которые могут дать мне сводные и / или списочные представления.больших деревьев по мере необходимости и при необходимости.
В настольном приложении вы храните вещи в памяти намного больше, поэтому вы будете писать меньше кода, просто работая с корнями агрегата и загружая их по мере необходимости.их.
В этом нет ничего правильного или неправильного.Я сомневаюсь, что вы могли бы создать большое приложение любого вида без компромиссов в отношении того, что считается совокупным корнем, и вы всегда окажетесь в ситуации, когда два корня в конечном итоге где-то объединяются.