Я новичок в CQRS / DDD, поэтому в моем понимании могут быть большие пробелы.
Но предположим, что у меня есть агрегатный объект Widget
. Widget
состоит из Note
объектов, а к Note
объектам может быть прикреплен File
объект.
В CQRS у меня может быть команда AddNoteToWidget
. Из моего чтения я знаю, что объекты команд и событий должны быть простыми DTO (я знаю, что они также могут быть в других формах, но главное, что они не содержат поведения).
Я также понимаю, что сущности никогда не должны содержать ссылки на репозитории, поскольку они не должны знать о сохранении.
Будет ли мой AddNoteToWidget
содержать ссылку на объект File
и просто сериализоваться вместе с командой? В этом случае мой объект File
должен быть объектом значения. Однако я смоделировал его как объект со своим собственным репозиторием, потому что я хотел иметь централизованное согласованное хранилище файлов во всей системе.
File
, мне тогда не понадобится ссылка наFileRepository
вWidget
. Или вы просто получите идентификатор файла и запроситеFileRepository
в клиентском коде? - person rgvcorley   schedule 28.10.2015AddNoteToWidget
может содержать строку для заметки, а затем идентификатор объектаFile
? - person rgvcorley   schedule 28.10.2015Note
при восстановлении из какой-либо персистентности имел фактическую ссылку на объектFile
, а не идентификатор, который потребовал бы, чтобы клиентский код запрашивалFileRepository
. Однако я не понимаю, как это возможно, если я просто воспроизводю объекты команд, которые должны быть простыми DTO. - person rgvcorley   schedule 28.10.2015