Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:使用洋葱架构,我的域/核心层是否需要引用MongoDB DLL?_Mongodb_Onion Architecture - Fatal编程技术网

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

MongoDB:使用洋葱架构,我的域/核心层是否需要引用MongoDB DLL?,mongodb,onion-architecture,Mongodb,Onion Architecture,MongoDB有自己的ObjectId类型,它将其用作默认主键。我正在尝试设置一个应用程序,该应用程序使用Onion体系结构设计,MongoDB作为基础架构层的持久性引擎。如果我的POCO类在我的域层中定义,但使用MongoDB的ObjectID类型作为主键,这会迫使我在我的域层上添加MongoDB作为依赖项吗?除了最外层,您不需要在任何地方引用MongoDB。在洋葱架构中,数据持久性被视为基础架构。我希望MongoDB成为存储库实现的一部分,该实现实现了域模型中定义的存储库接口 MongoDB

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

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

MongoDB文档有一个唯一标识它的
\u id
字段:

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


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

谢谢你的帮助!事实证明,C#驱动程序的文档解决了这个问题()。在标题为RepresentationSerializationOptions的部分(几乎是页面的一半)下,它提到了一种在POCO中使用
string
作为数据类型的方法,同时将值存储在mongodb中作为
ObjectId
。这个问题也有助于: