1

我是 .net c# 开发人员,目前正在探索与 mongo db 数据库的集成。该数据库将成为 mvc 数据库的后端。

CRUD 操作将从 MVC 应用程序到 mongo db 对数据库执行,并且数据将从一个简单的控制台应用程序插入到其中,该应用程序解析 xml 文件并将数据库插入/更新到 mongo db。

我一直在审查 C Sharp Mongo Db 驱动程序,并且对对象序列化以及与强类型对象的关系等有疑问。我不太清楚的是我是否有一个对象来反映 mongo bson 文档的结构。该对象被序列化到 mongo db 文档中。我对此的疑问是:

  • 如果我的应用程序有新版本,增加 dll 版本号怎么办。发布之后,可以将原始数据序列化到新版本的对象中吗?还是我的对象需要具有版本容错性?
  • 如果我的控制台应用程序插入数据并且 mvc 应用程序对同一个 bson 文档执行 CRUD 操作,它是否需要在两个应用程序之间共享同一个对象?如果可能的话,我宁愿避免这种依赖,那么处理这个问题的最佳方法是什么。
4

1 回答 1

1

您可以在此处查看与版本控制相关的序列化教程中的部分:http ://www.mongodb.org/display/DOCS/CSharp+Driver+Serialization+Tutorial#CSharpDriverSerializationTutorial-HandlingSchemaChanges 。

1)要回答您的第一个问题,您的对象肯定需要具有版本容错性。

2)只要映射相同,它们就不需要共享同一个对象。这意味着相同的结构、相同的属性和相同的约定。

话虽如此,共享同一个数据对象并不是世界末日。而且您不会在两个系统之间创建依赖关系。相反,您将创建一个共享库,其中包含持久化数据所需的对象和代码。然后,您不需要在两种不同的媒体之间复制代码。将共享库视为 API。

另一种方法是让控制台应用程序调用 MVC 应用程序来上传数据。MVC 应用程序不仅成为用户交互的 API,也成为程序的 API。再次,逻辑在一个地方。

于 2013-01-03T14:45:10.827 回答