Как создать мои объекты DDD с Mongodb / Couchdb? - PullRequest
2 голосов
/ 18 декабря 2011

Я начинаю свой первый проект с использованием DDD (с использованием C #), и на этом этапе я чувствую, что мы, вероятно, перейдем с MongoDB или, возможно, CouchDB для обеспечения устойчивости (среда Entity, подобная ORM, кажется слишком большой избыточностью для того, чего мы хотим) , но, говоря, что на данном этапе у меня практически нулевой опыт работы с MongoDB или CouchDB.

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

Если я пойду по этому маршруту, я смогу легко подключить свой уровень персистентности (mongoDB / CouchDB) или мне придется изменить мою модель предметной области (в настоящее время мои конструкторы в моих объектах сущности имеют строковый идентификатор в качестве параметра ( который будет идентификатором GUID)).

JD

1 Ответ

2 голосов
/ 19 декабря 2011

С MongoDB вы, вероятно, захотите иметь коллекцию для каждого корня агрегата, что означает, что вашим агрегатным корням нужны идентификаторы, так как они будут документами в БД.Если вы хотите, чтобы в вашей доменной модели не было кода, специфичного для MongoDB, эти идентификаторы могут быть строками.

Я бы не включал идентификаторы в аргументы конструктора.Я бы просто позволил им быть записываемыми свойствами.Как и в случае с ORM, я рассмотрел бы обработку чтения и хранения сущностей через репозитории.И держите там код MongoDB.

...