考虑这个模拟场景,我有以下类:
public class Person {
public Guid Id {get;set;}
public string Name {get;set;}
public Address Address {get;set;}
}
我目前有一个ReliableDictionary(Guid,Person)。我想通过拆分地址来改变我的Person模型,如下所示:
public class Person {
public Guid Id {get;set;}
public string Name {get;set;}
}
public class Address {
public Guid Id {get;set;}
public string Street {get;set;}
...
}
然后我会有两个ReliableDictionaries,一个用于人,一个用于地址。
在升级过程中拆分这些实体并迁移数据的正确方法是什么?我觉得以前有关于此的文档,但我再也找不到了。
谢谢!
答案 0 :(得分:2)
一个重要的要求是您的模型需要向后兼容。无论模型发生什么变化,存储的模型都应该能够加载。
转换所有存储的模型需要您遍历存储的模型,进行更改并再次存储它们。您需要为此编写特定代码。这可以包含在微服务中,或者你可以创建一个临时微服务,它调用保存数据的微服务。转换完成后,您可以删除代码或微服务。
您也可以“动态”执行此操作。无论何时在生产期间加载模型,您都要检查版本号(您需要在模型上指定版本字段)。如果版本低于某个值,请转换它。