如何使用Mongodb / Couchdb创建我的DDD实体?

时间:2011-12-18 19:28:28

标签: c# mongodb couchdb domain-driven-design nosql

我正在使用DDD开始我的第一个项目(使用C#),在这个阶段我觉得我们可能会使用MongoDB或CouchDB来实现持久性(像Entity框架这样的ORM对于我们想要的东西来说似乎太过分了) ,但是说我现阶段在MongoDB或CouchDB中几乎没有经验。

当我创建我的域时,我想过使用GUIDS作为我的实体的ID(来自关系数据库世界,仍然无法摆脱它)。

如果我沿着这条路走下去,我将能够轻松地插入我的持久层(mongoDB / CouchDB),或者我是否必须更改我的域模型(目前我的实体对象上的构造函数有一个字符串ID作为参数(这将是GUID ID))。

JD

1 个答案:

答案 0 :(得分:2)

使用MongoDB,您可能希望每个聚合根有一个集合,这意味着您的聚合根需要ID,因为它们将是数据库中的文档。如果您想让您的域模型不受MongoDB特定代码的影响,那么这些ID就可以是字符串。

我不会在构造函数参数中包含id。我只想让它们成为可写属性。与ORM一样,我会考虑通过存储库处理实体的读取和存储。并将MongoDB代码保存在那里。