什么是Marten AddEventType用于

时间:2018-04-12 15:28:24

标签: marten

“在对事件数据发出查询之前,Marten确实需要知道事件类型是什么”

但我举个例子 session.Events.FetchStream(streamId),和 session.Events.Load() 他们工作正常

感谢

1 个答案:

答案 0 :(得分:0)

我发现,实际上,如果您的应用程序在读取任何流之前将事件提交给Marten,则您不必注册任何事件。

但是,如果在提交任何内容之前先结束读取流,则需要首先配置事件。我的应用程序在接受输入之前有条件地重建启动时的投影,因此它最终会导致此问题。

如何为您的事件配置Marten

配置Marten时,请传入您所有事件类型的IEnumerable<Type>。例如,我的注册如下:

cfg.Events.AddEventTypes(
    typeof(EventBase)
        .Assembly
        .GetTypes()
        .Where(typeof(EventBase).IsAssignableFrom)
);

我建议对所有事件都使用基类,因为这样会使诸如此类的超级简单。

已经为Marten配置了这些事件,您现在可以根据需要自由查询流。