我们使用 NEventStore(艺术家以前称为 Jonathan Oliver 的 EventStore)来存储我们的 CQRS 事件。我想知道如果我们希望向事件添加新属性,是否需要创建新版本的事件。
我知道我们不应该重命名现有的属性,因为这会在从 EventStore 读取事件时产生问题。但是,如果我们只添加新属性会不会产生任何问题?
最佳答案
取决于您如何序列化消息。换句话说,最好的表达方式(/搜索现有答案)是确定您如何序列化消息,然后找出该机制如何处理问题。
假设它是带有 JSON.NET 和简单 POCO 的 JSON,那么答案是添加属性的处理非常干净 - 在没有任何自定义(这是非常可行的)的情况下,新字段随 default(T)
一起出现。 ,即 null
或 0
对于每个相关值。
关于versioning - 向现有 CQRS 事件添加更多属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17719434/