MongoDB:使用洋葱架构,我的域/核心层是否需要引用MongoDB DLL?
-
13-12-2019 - |
题
mongodb有自己的对象类型,它用作默认主键。我正在尝试使用洋葱架构使用MongoDB作为基础架构层中的持久引擎进行设置的应用程序。如果我的域图层中定义了Poco类,但使用MongoDB的MongoDB对象类型的主键,那将强制我将MongoDB添加为对我的域图层的依赖项?
解决方案
您不应需要对MongoDB的任何位置除外,除了外层层外。在洋葱架构中,数据持久性被视为基础架构。我将拥有MongoDB成为存储库实现的一部分,它实现域模型中定义的存储库接口。
mongodb文档具有一个唯一标识它的世代odicetagcode字段。请参阅这里:
_id
值可以是任何类型,除阵列之外,只要它是一个唯一的。如果您的文档具有自然的主键,我们建议您在_id
中使用它而不是自动生成的ID。
不要让你的持久机制推动你!
不隶属于 StackOverflow