Заполнение раскрывающихся списков / списков выбора - PullRequest
0 голосов
/ 23 июля 2010

Я все еще в процессе изучения DDD. Я пишу приложение ASP.NET MVC, и у меня есть несколько выпадающих списков, которые мне нужно заполнить из базы данных. Я создал сопоставленные объекты для каждого типа (статус, результат и т. Д.)

То, что я не могу понять, это то, откуда я должен получать данные. Создание отдельного репозитория для каждого типа списка выбора вызывает боль, когда приходится вводить большое количество репозиториев в контроллеры MVC. Кроме того, все эти списки выбора доступны только для чтения, поэтому репозиторий для каждого списка выбора кажется излишним. Создание одного супер-репозитория для всех типов списков выбора также не представляется правильным, поскольку репозиторий должен быть похож на коллекцию один типа сущности.

Я немного читал о CQS и уровне отчетности, но я не знаю, как это будет реализовано правильно.

1 Ответ

1 голос
/ 23 июля 2010

Прежде всего - даже не смотрите на CQRS, если вам не нравится DDD. Я имею в виду - посмотрите, но не пытайтесь реализовать с ним реальный проект. Тем не менее.

Когда мы не отделяем стороны приложения от чтения и записи, репозиторий путается из-за смешанной ответственности.

С одной точки зрения - он отвечает за сохранение совокупного корня, с другой - он также отвечает за отчетность.

Это означает, что в этом нет ничего плохого (по крайней мере, на мой взгляд), если хранилище содержит функции для извлечения данных только в целях презентации.

В вашем случае - я бы просто строил выпадающие списки, используя данные из соответствующих репозиториев. Итак, в раскрывающемся списке продукта будут взяты данные из ProductRepository.Find(bySomething) (или Repository<Product>(bySomething) в случае, если я решу использовать общий репозиторий).

P.s. Имейте в виду, что DDD не так уж много о моделях. Это больше о вездесущем языке и явной модели вашего домена.

...