В этом случае я должен забыть об этом DDD sugestion или есть обходной путь?
Здесь нет действительно хорошего ответа. В работе возникает напряжение, когда мы пытаемся смешивать объекты с изменяемым, инкапсулированным состоянием и постоянством (ie: сохранение достоверной копии состояния в некотором долговременном хранилище anemi c).
«Право» ответ в том, что мы не используем O / RM для загрузки доменных сущностей из долговременного хранилища; O / RM загружает DTO, и мы копируем информацию из DTO в объект домена. Аналогично, для сохранения вы извлекаете информацию из доменного объекта и копируете ее в DTO, а затем сохраняете DTO.
Другими словами, O / RM загружает в память представление структуры данных anemi c.
На практике гораздо чаще связывать состояние объекта с O / RM, реализуя в объекте домена все интерфейсы, которые необходимы O / RM для выполнения своей работы.
Хитрость заключается в том, чтобы убедиться, что вы можете отделить свою реализацию от O / RM, когда начнутся предположения O / RM. мешать. Например, вы должны иметь возможность легко изменить заданный c агрегат с использования реляционного хранилища данных на использование хранилища данных документа без необходимости перезаписи всей вашей системы.