1

MongoDB 有自己的 ObjectId 类型,它用作默认主键。我正在尝试设置一个使用 Onion Architecture 设计的应用程序,并将 MongoDB 作为基础设施层中的持久性引擎。如果我的 POCO 类是在我的域层中定义的,但使用 MongoDB 的 ObjectID 类型作为主键,这会迫使我将 MongoDB 添加为对我的域层的依赖吗?

4

1 回答 1

2

除了最外层,您不需要在任何地方引用 MongoDB。在洋葱架构中,数据持久性被认为是基础设施。我会让 MongoDB 成为实现域模型中定义的存储库接口的存储库实现的一部分。

MongoDB 文档有一个_id唯一标识它的字段。 见这里

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

不要让你的持久性机制左右你!

于 2012-10-06T15:06:48.560 回答