我正在开发一个应用程序,我在前进时会更改文档(一个小项目来学习像RavenDB这样的东西)。某些更改不向后兼容,这会在我尝试获取文档时导致JSON反序列化失败。
在反序列化期间,是否有某种方法可以将属性从旧类型转换为新类型?我正在使用Raven.Client.Lightweight
作为客户端库。
示例:
我在类AllProperties
中有一个名为Dictionary<string,string>
的属性。我将类型从字典更改为名为MetadataItemCollection
的类。
答案 0 :(得分:6)
与任何其他数据库解决方案一样,我建议您为这类事情推送您最喜爱的迁移框架。您可能希望对文档执行set-based operations。
有趣的是,Ayende将在接下来的几天内发布两篇关于ravendb迁移的文章,但谷歌已经将它们编入索引,你可以在这里访问这些文章:
Ayende,请原谅我......;)答案 1 :(得分:3)
如果您在开发过程中这样做,那么最好只删除旧文档并重新创建它们 如果您在制作中这样做,请查看dlang发布的帖子,他们会讨论这些具体问题。