NEventStore RavenDB — получение данных фиксации

Я прорабатываю базовый пример работы с NEventStore с RavenDB и наткнулся на камень преткновения.

Мне удалось успешно зафиксировать свои события в источнике данных RavenDB, но теперь мне нужно вытащить их обратно, чтобы воспроизвести их шаблон (CQRS - ES).

Я могу вернуть коллекцию объектов EventMesssage, используя NEventStore IStoreEvents Unterface следующим образом:

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

        }

В каждом EventMessage я могу получить доступ к свойствам заголовка и тела. В свойстве body находится фактическое событие, которое я отправил, которое я хочу вытащить и проверить.

Я не уверен, правильно ли то, чего я пытаюсь достичь.

Должен ли я использовать класс Raven IDocumentStore для извлечения объектов событий или это должно быть сделано через NEventstore Stream.


person Derek    schedule 27.11.2014    source источник


Ответы (1)


На базовом уровне то, что вы делаете, правильно: это тот же код, что и в быстром старте. Пример кода NEventstore. Если вы работаете в более DDD-контексте, вероятно, вам следует генерировать события из ваших агрегатов, используя библиотеку CommonDomain, которая встроенный в NEventStore, и получить их из IRepository Интерфейс.

Вы можете найти пример в сети. Один из них — мой учебный проект: https://github.com/williamverdolini/CQRS-ES-Todos (несколько заметок об этом). Я не использую RavenDB и все еще учусь... но может быть полезен ;-)

person wilver    schedule 29.11.2014