DDD заявляет, что вы должны получать доступ к объектам только через свой совокупный корень. Так скажите, например, что у вас есть совокупный корень X, который потенциально имеет много дочерних Y-объектов. Теперь, для некоторого сценария, вы действительно заботитесь только о подмножестве этих объектов Y за один раз (возможно, вы показываете их в выгружаемом списке или что-то еще).
Правильно ли реализовать репозиторий, чтобы в таких сценариях он возвращал неполную совокупность? То есть. объект X, который представляет собой коллекцию Ys, содержит только интересующие нас экземпляры Y, а не все из них? Это может, например, вызвать методы на X, которые выполняют некоторый расчет, в котором Ys не будет вести себя так, как ожидалось.
Возможно, это указание на то, что рассматриваемый объект Y следует считать продвинутым до совокупного корня?
Моя текущая идея (на С#) заключается в том, чтобы использовать задержанное выполнение LINQ, так что мой объект X имеет IQueryable, чтобы представлять его связь с Y. Таким образом, я могу иметь прозрачную ленивую загрузку с фильтрацией... Но получение это для работы с ORM (Linq to Sql в моем случае) может быть немного сложнее.
Любые другие умные идеи?