MongoDB:使用洋葱架构,我的域/核心层是否需要引用MongoDB DLL?
MongoDB有自己的ObjectId类型,它将其用作默认主键。我正在尝试设置一个应用程序,该应用程序使用Onion体系结构设计,MongoDB作为基础架构层的持久性引擎。如果我的POCO类在我的域层中定义,但使用MongoDB的ObjectID类型作为主键,这会迫使我在我的域层上添加MongoDB作为依赖项吗?除了最外层,您不需要在任何地方引用MongoDB。在洋葱架构中,数据持久性被视为基础架构。我希望MongoDB成为存储库实现的一部分,该实现实现了域模型中定义的存储库接口 MongoDB文档有一个唯一标识它的MongoDB:使用洋葱架构,我的域/核心层是否需要引用MongoDB DLL?,mongodb,onion-architecture,Mongodb,Onion Architecture,MongoDB有自己的ObjectId类型,它将其用作默认主键。我正在尝试设置一个应用程序,该应用程序使用Onion体系结构设计,MongoDB作为基础架构层的持久性引擎。如果我的POCO类在我的域层中定义,但使用MongoDB的ObjectID类型作为主键,这会迫使我在我的域层上添加MongoDB作为依赖项吗?除了最外层,您不需要在任何地方引用MongoDB。在洋葱架构中,数据持久性被视为基础架构。我希望MongoDB成为存储库实现的一部分,该实现实现了域模型中定义的存储库接口 MongoDB
\u id
字段:
\u id
值可以是数组以外的任何类型,只要它是唯一的。如果您的文档具有不可变的自然主键,我们建议您在\u id
中使用该主键,而不是自动生成的id
不要让你的持久性机制左右你 谢谢你的帮助!事实证明,C#驱动程序的文档解决了这个问题()。在标题为RepresentationSerializationOptions的部分(几乎是页面的一半)下,它提到了一种在POCO中使用
string
作为数据类型的方法,同时将值存储在mongodb中作为ObjectId
。这个问题也有助于: