2011-08-22 118 views
3

我目前正在开发一个应用程序,当我向前(一个学习像RavenDB这样的东西的小型项目)更改文档时,这个应用程序很多。某些更改不会向后兼容,这会导致在尝试获取文档时发生JSON反序列化失败。RavenDB:将文档属性转换为另一种类型

在反序列化过程中,我是否有某种方式将属性从旧类型转换为新类型?我使用Raven.Client.Lightweight作为客户端库。

例子:

我有一个名为AllProperties在一类是Dictionary<string,string>属性。我将字典的类型更改为名为MetadataItemCollection的类。

+0

这是真正做你正在尝试的正确方法吗?换句话说,您是不是应遵循SOLID的第二条规则,即“打开关闭原则”,其中模块可以进行扩展,但对于修改是封闭的?如果你正在改变属性名称,那么也许你应该从头开始删除文档并重新创建,然后一旦你的核心结构是稳定的实现接口允许扩展?思考? – Jethro

+0

@Jehtro:你认真吗? – jgauffin

回答

3

如果你在开发过程中这样做,你可能会更好删除旧文档并重新创建它们 如果您是在制作中进行此操作,请查看dlang发布的帖子,他们会讨论这些具体问题。

相关问题