Прежде всего - даже не смотрите на CQRS, если вам не нравится DDD. Я имею в виду - посмотрите, но не пытайтесь реализовать с ним реальный проект. Тем не менее.
Когда мы не отделяем стороны приложения от чтения и записи, репозиторий путается из-за смешанной ответственности.
С одной точки зрения - он отвечает за сохранение совокупного корня, с другой - он также отвечает за отчетность.
Это означает, что в этом нет ничего плохого (по крайней мере, на мой взгляд), если хранилище содержит функции для извлечения данных только в целях презентации.
В вашем случае - я бы просто строил выпадающие списки, используя данные из соответствующих репозиториев. Итак, в раскрывающемся списке продукта будут взяты данные из ProductRepository.Find(bySomething)
(или Repository<Product>(bySomething)
в случае, если я решу использовать общий репозиторий).
P.s. Имейте в виду, что DDD не так уж много о моделях. Это больше о вездесущем языке и явной модели вашего домена.