Я оцениваю библиотеку событий JOliver . В частности, я пытаюсь использовать 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?