MongoDB未知鉴别器值



我在这个问题的答案中添加了代码:未知鉴别器值';MyEvent';,但这无济于事。

反序列化类EventStore.EventMessage的Body属性时出错:未知的鉴别器值:"插入事件名称"。只有在程序重新启动后尝试重新水合保存的对象时,才会出现错误。

运行最新的MyGet Build

示例存储库:https://github.com/tonyeung/EventStore-MongoDB

复制问题:

运行程序
按c键创建新记录
按q退出
再次运行程序
但按r可补充水分
错误触发

如果运行程序,按c,按enter继续,按r重新水合而不退出,则对象重新水合不会出现问题。瓦特?

        using (var eventStore = WireupEventStore())
        {
            var snapshot = eventStore.Advanced.GetSnapshot(ID, int.MaxValue);
            if (snapshot == null)
            {
                // ERRORS HERE
                using (var stream = eventStore.OpenStream(ID, 0, int.MaxValue))
                {
                    var events = from s in stream.CommittedEvents
                                 select s.Body as IEvent;
                    obj.LoadsFromHistory(events);
                }
            }
        }

github问题:https://github.com/NEventStore/NEventStore/issues/203

我发现了这一点,因为我使用接口作为事件的标记,所以我不得不将SO问题的查询从更改为

        var types = Assembly.GetAssembly(typeof(SimpleCQRS.Event))
                .GetTypes()
                .Where(type => type.IsSubclassOf(typeof(SimpleCQRS.Event)));

        var type = typeof(IEvent);
        var types = Assembly.GetAssembly(typeof(IEvent))
                .GetTypes()
                .Where(t => type.IsAssignableFrom(t))
                .Where(t => t.IsClass);

相关内容

  • 没有找到相关文章

最新更新