Клиент репозитория - это фрагмент кода (другой класс), обычно прикладного уровня в контексте DDD / Onion Architecture. Практическое правило гласит: 1 хранилище на совокупность Root. Если ваш Агрегат Root - это Order, который содержит коллекцию OrderItem внутри, вы создаете только OrderRepository и возвращаете обратно весь Order с ВСЕМИ OrderItems, без отложенной загрузки. Теперь ваш клиент (код уровня приложения) не должен знать, что находится внутри репозитория (он основан на файлах, sql, основан на http), вы рассматриваете его как коллекцию памяти: repository.GetById (orderId), где репозиторий - IOrderRepository. , Это означает, что вы можете легко изменить свое хранилище в памяти на sql и обратно в любое время, и ваш клиентский код (прикладной уровень) или любой другой класс, который использует хранилище, не будет затронут, следовательно, принцип подстановки Лискова сохраняется.