如何创建我的DDD实体与Mongodb/Couchdb
本文关键字:实体 Mongodb Couchdb DDD 我的 何创建 创建 | 更新日期: 2023-09-27 18:18:08
我正在使用DDD(使用c#)开始我的第一个项目,在这个阶段,我觉得我们可能会使用MongoDB或CouchDB进行持久性(像实体框架这样的ORM对于我们想要的东西来说似乎太多了),但是说我在这个阶段几乎没有MongoDB或CouchDB的经验。
当我创建我的域时,我考虑使用GUIDS作为我的实体的id(来自关系数据库世界,仍然有麻烦远离它)。
如果我走这条路,我将能够轻松地在我的持久层(mongoDB/CouchDB)插件,或者我必须改变我的域模型(目前我的实体对象上的构造器有一个字符串ID作为参数(这将是GUID ID))。
JD
使用MongoDB,您可能希望每个聚合根有一个集合,这意味着您的聚合根需要id,因为它们将是DB中的文档。如果你想保持你的领域模型不受MongoDB特定代码的影响,这些id可以是字符串。
我不会在构造函数参数中包含id。我让它们是可写的性质。与ORM一样,我会考虑通过存储库处理实体的读取和存储。并保持MongoDB的代码在那里。