2014-11-27 12 views
0

저는 RavenDB를 사용하여 NEventStore를 사용하는 기본 예제를 수행 중입니다.NEventStore RavenDB - 커밋 데이터 얻기

나는 RavenDB 데이터 소스에 이벤트를 성공적으로 커밋 할 수 있었지만 지금은 CQRS - ES 패턴을 재생하기 위해 이벤트를 다시 꺼내야합니다.

나는이 같은 NEventStore IStoreEvents Unterface을 usng에 의해 EventMesssage 개체의 컬렉션을 다시 가져올 수 : -

public IEnumerable<EventMessage> GetEvents(Guid aggregateRootId) 
     { 
      using (var stream = _store.OpenStream(aggregateRootId, 0)) 
      { 
       return stream.CommittedEvents; 
      } 

     } 

각 EventMessage, 나는이 헤더 & 몸 등록 정보에 액세스 할 수 있습니다. body 속성에는 내가 제출 한 실제 이벤트가 있습니다.이 이벤트는 꺼내서 검사하려고합니다.

달성하고자하는 것이 맞는지 확실하지 않습니다.

Raven IDocumentStore 클래스를 사용하여 이벤트 객체를 검색해야합니까, 아니면 NEventstore Stream을 통해 수행해야합니까?

답변

0

당신이하고있는 일은 정확합니다. quick-start NEventstore sample code에 표시된 코드와 같습니다. DDD 컨텍스트에서 작업하는 경우 NEventStore에 포함 된 CommonDomain library을 사용하여 집계에서 이벤트를 방출하고 IRepository 인터페이스에서 이벤트를 검색해야합니다.

웹에서 몇 가지 예를 찾을 수 있습니다. 그들 중 하나는 내 훈련 프로젝트입니다 : https://github.com/williamverdolini/CQRS-ES-Todos (some notes about that). 나는 RavenDB를 사용하지 않고 있으며 아직 학습하고 있지만 유용 할 수 있습니다 ;-)