我正在研究一个使用RavenDB处理NEventStore的基本示例,但我遇到了一个障碍。
我已经成功地将我的事件提交到RavenDB数据源,但现在我需要将它们拉回,以重放它们(CQRS - ES)模式。
我可以通过使用EventMesssage IStoreEvents接口带回NEventStore对象的集合,如下所示:
public IEnumerable<EventMessage> GetEvents(Guid aggregateRootId)
{
using (var stream = _store.OpenStream(aggregateRootId, 0))
{
return stream.CommittedEvents;
}
}在每个EventMessage中,我都可以访问Header & Body属性。在body属性中是我提交的实际事件,我想拉出并检查它。
我不确定我试图实现的目标是否正确。
我应该使用Raven IDocumentStore类来检索事件对象,还是应该通过NEventstore流来完成。
发布于 2014-11-29 19:49:11
在基本级别上,您所做的是正确的:它与quick-start NEventstore sample code中显示的代码相同。如果你在一个更依赖DDD的环境中工作,也许你应该使用嵌入在NEventStore中的CommonDomain library从你的Aggregate中发出事件,并从IRepository接口中检索它们。
你可以在网上找到一些例子。其中之一是我的培训项目:https://github.com/williamverdolini/CQRS-ES-Todos (some notes about that)。我没有使用RavenDB,而且我仍然在使用learnig...but ;-)
https://stackoverflow.com/questions/27170760
复制相似问题