Я вижу следующую ошибку в EventStore Джонатона Оливера:
ОШИБКА: 23505: повторяющееся значение ключа нарушает уникальное ограничение "ix_commits_revisions"
Есть идеи, почему это происходит?
Я вижу следующую ошибку в EventStore Джонатона Оливера:
ОШИБКА: 23505: повторяющееся значение ключа нарушает уникальное ограничение "ix_commits_revisions"
Есть идеи, почему это происходит?
Предполагая, что индекс такой, как я его гуглил:
CREATE UNIQUE INDEX IX_Commits_Revisions ON Commits (
StreamId, StreamRevision, Items);
Два Save
записали эквивалентные изменения, что представляет собой нарушение оптимистичного параллелизма.
Как правило, это будет преобразовано уровнем Common Domain (или подобным) в EventStore ConcurrencyException
.
Решение состоит в том, чтобы повторно применить команду к новой загрузке событий в потоке.
Если вы кэшируете IEventRepository
, вы не должны этого делать, поскольку все, у кого есть доступ на запись к базе данных, могут в равной степени записывать в поток событий.
Откуда я все это знаю? Документы Readme в пакете NuGet очень четко объясняют причину этого, и вы воруете у себя/своего работодателя, если не читаете и не перечитываете их, пока не сможете решить это самостоятельно!