【问题标题】:Best way to update a database's serialized objects after changing the object form更改对象形式后更新数据库序列化对象的最佳方法
【发布时间】:2011-02-17 17:17:29
【问题描述】:

我经常将我的对象以 xml 格式写入数据库。

但是,如果我更改对象的形式,比如更改名称或更改字段,我将无法再从数据库中读取它们,这使得读取它们、将它们转换为新对象的任务有些困难表单,并将它们写回数据库。

我宁愿不必在每次更改课程时都重命名课程。

*注意:我依靠 C# 的 XmlSerialization/Deserialization 对象来生成 Xml。如果我更改对象的格式,这可能是不可取的。

【问题讨论】:

  • 如果你做了很多,你可能想看看一个文档数据库;比 RDBMS 更适合这种类型的使用...

标签: c# xml database xml-serialization


【解决方案1】:

如果您在对象上实现 ISerializable 接口,那么您可以实现自定义序列化/反序列化例程,以提供与旧版本对象的向后兼容性。

请参阅此处了解如何完成此操作的示例:ISerializable and backward compatibility

【讨论】:

    【解决方案2】:

    这最终取决于您如何序列化对象。

    一个方便的选择是将它们存储为散列(键值对)。这样,如果类Dog 具有属性name 我添加另一个属性breed,现有对象将不会失效。他们只会有breed = nil
    在这种情况下,确切的存储格式(xml、json 或单独的“属性”表)并不重要,重要的是如何将对象转换为它并返回。

    但我认为没有人可以在不了解具体平台的情况下给出具体建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 2022-11-23
      • 2021-05-29
      • 2021-12-31
      • 2021-03-14
      • 1970-01-01
      相关资源
      最近更新 更多