К сожалению, нет ничего встроенного, чтобы сделать это для вас (хотя я давно не обновлял версию ncqrs, которую я использую, так что, возможно, она изменилась).Это также несколько нетривиально, поскольку это зависит от того, что именно вы хотите сделать.
То, как я бы это сделал (до этого момента у меня не было нужды), должно быть:
- Вызов в хранилище событий для получения всех соответствующих событий
В зависимости от того, что вы делаете, это могут быть все события или только события для одного совокупного корня или подмножествособытий для одного или нескольких агрегатных корней.
Повторное создание модели чтения в памяти с нуля (для сохранения медленной и ненужной записи)
Сохраните воссозданную модель чтения вместо существующей
Вызовите хранилище событий еще раз, чтобы получить какие-либо события, которые могли быть пропущены
Повторяйте до тех пор, пока не будут возвращены новые события
Стоит отметить, что если вы воссоздаете всю базу данных модели чтения с нуля, я бы отключилсяслужба временно или очередь новых событий, пока вы не закончите.
Опять же, есть разные способы решения этой проблемы, ваша архитектура и сценарии, вероятно, будут определять, как лучше всего это сделать.