Подключение EventStore JOliver с использованием подключаемого модуля RavenDB Persistence

Я оцениваю библиотеку JOliver's EventStore . В частности, я пытаюсь использовать RavenDB в качестве механизма сохранения состояния для EventStore. EventStore поставляется с плагином для этого. ПРИМЕЧАНИЕ. База данных пуста без индексов (кроме индексов по умолчанию).

При подключении хранилища я использовал следующее:

var store = Wireup.Init()
    .UsingRavenPersistence("EventStore", new DocumentObjectSerializer())
    .Build();

Однако, когда я запускаю свою программу, я получаю исключение, которое указывает на " Индекс RavenCommitByRevisionRange "не найден.

При поиске кода EventStore я думаю, что проблема в том, что RavenPersistenceEngine не инициализируется. Код инициализации устанавливает необходимые индексы на сервере RavenDB.

На стороне SQL-сервера, Я заметил, что код подключения в примере проекта показывает вызов метода расширения с именем: "InitializeStorageEngine". Этот метод расширения привязан к классу PersistenceWireup. Однако метод расширения, который я использую для подключения к сохраняемости RavenDB, возвращает класс Wireup. Поэтому я заключил часть своего кода подключения в новый экземпляр PersistenceWireup и смог вызвать ".InitializeStorageEngine ()" следующим образом:

var store = new PersistenceWireup(
    Wireup.Init()
        .UsingRavenPersistence("EventStore", new DocumentObjectSerializer()))
            .InitializeStorageEngine()
        .Build();

Это отлично работает! База данных RavenDB теперь содержит необходимые индексы.

Итак ... Мои вопросы: «.UsingRavenPersistence (...)» не должен возвращать экземпляр «PersistenceWireup», а не просто «Wireup». ? Или есть лучший способ подключить сохраняемость RavenDB в EventStore?

5
задан Lee DeLapp 26 May 2011 в 01:16
поделиться