Помните, что доменно-управляемый дизайн также имеет концепцию сервисов . Для выполнения определенных запросов к базе данных лучше смоделировать проблему как службу, а не как коллекцию дочерних объектов, прикрепленных к родительскому объекту.
Хорошим примером этого может быть создание отчета путем принятия нескольких введенных пользователем параметров. Проще смоделировать это как:
CustomerReportService.GetOrdersByOrderDate(Customer theCustomer, Date cutoff);
Чем нравится:
myCustomer.OrdersCollection.SelectMatching(Date cutoff);
Или, другими словами, модель DDD, которую вы используете для ввода данных, не должна совпадать с моделью DDD, которую вы используете для отчетности .
В сильно масштабируемых системах принято разделять эти две проблемы.