2016-09-23 3 views
1

Рассмотрим этот макет сценарий, где у меня есть следующий класс:Как обновить модель в ReliableDictionary?

public class Person { 
    public Guid Id {get;set;} 
    public string Name {get;set;} 
    public Address Address {get;set;} 
} 

Я в настоящее время ReliableDictionary (Guid, лицо). Я хотел бы изменить свою модель 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

это важная статья для чтения: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-work-with-reliable-collections/ – LoekD

ответ

2

Важным требованием является то, что ваша модель должна быть обратно совместимой. Сохраненная модель должна иметь возможность загружать, независимо от изменений в вашей модели.

Для преобразования всех сохраненных моделей требуется прокрутить сохраненные модели, внести изменения и сохранить их снова. Для этого вам нужно написать конкретный код. Это может быть включено в микросервис, или вы можете создать временный микросервис, который вызывает микросервис, который хранит данные. После завершения преобразования вы можете удалить код или микросервис.

Вы также можете сделать это «на лету». Всякий раз, когда модель загружается во время производства, вы проверяете номер версии (вам нужно указать поле версии на вашей модели). Если версия ниже определенного значения, преобразуйте ее.

Смежные вопросы