如何更新 ReliableDictionary 中的模型?

How do I update a model in a ReliableDictionary?

考虑这个模拟场景,其中我有以下 class:

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,一个用于人员,一个用于地址。

在升级期间拆分这些实体并迁移数据的正确方法是什么?感觉以前有这方面的文档,现在找不到了

谢谢!

一个重要的要求是您的模型需要向后兼容。无论您的模型发生什么变化,存储的模型都应该能够加载。

转换所有存储的模型需要您循环存储的模型,进行更改并再次存储。您需要为此编写特定的代码。这可以包含在微服务中,或者您可以创建一个临时微服务来调用保存数据的微服务。转换完成后,您可以删除代码或微服务。

您也可以这样做 'on the fly'。每当在生产过程中加载模型时,您都会检查版本号(您需要在模型上指定一个版本字段)。如果版本低于某个值,则转换它。