MongoDB:使用洋葱架构,我的域/核心层是否需要引用MongoDB dll?

时间:2012-10-03 15:32:46

标签: mongodb onion-architecture

MongoDB有自己的ObjectId类型,它用作默认主键。我正在尝试使用Onion Architecture设置一个使用MongoDB作为基础架构层中的持久性引擎的应用程序。如果我的POCO类在我的域层中定义但是使用MongoDB的ObjectID类型作为主键,那么是否会强制我将MongoDB作为依赖项添加到我的域层?

1 个答案:

答案 0 :(得分:1)

除最外层之外,您不应该在任何地方引用MongoDB。在洋葱架构中,数据持久性被视为基础架构。我希望MongoDB成为实现域模型中定义的存储库接口的存储库实现的一部分。

MongoDB文档具有唯一标识它的_id字段。 See here

  

_id值可以是除数组之外的任何类型,只要它是唯一的。如果您的文档具有不可变的自然主键,我们建议您在_id中使用该键而不是自动生成的ID。

不要让你的持久性机制推动你!