Jonathon Oliver の EventStore で次のエラーが表示されます。
エラー: 23505: 重複するキー値が一意の制約 "ix_commits_revisions" に違反しています
なぜこれが起こっているのですか?
Jonathon Oliver の EventStore で次のエラーが表示されます。
エラー: 23505: 重複するキー値が一意の制約 "ix_commits_revisions" に違反しています
なぜこれが起こっているのですか?
インデックスが私がグーグルで検索したとおりであると仮定します:
CREATE UNIQUE INDEX IX_Commits_Revisions ON Commits (
StreamId, StreamRevision, Items);
2 つSave
の が同等の変更を書き込んでおり、楽観的同時実行違反を表しています。
通常、これは Common Domain (または同様の) レイヤーによって EventStore に変換されますConcurrencyException
。
解決策は、ストリーム内のイベントの新しい Load に対して Command を再適用することです。
をキャッシュしている場合はIEventRepository
、データベースへの書き込みアクセス権を持つ全員が等しくイベント ストリームに書き込むことができるため、そうすべきではありません。
どうすればこれをすべて知ることができますか? NuGet パッケージの Readme ドキュメントは、この背後にある基礎を非常に明確に説明しており、自分で解決できるようになるまで読み直さないと、自分自身や雇用主から盗んでいることになります。