我在Jonathon Oliver的EventStore中看到以下错误:
错误:23505:重复键值违反唯一约束"ix_commits_revisions"
任何想法为什么会这样?
假设索引是我用谷歌搜索它:
CREATE UNIQUE INDEX IX_Commits_Revisions ON Commits (
StreamId, StreamRevision, Items);
Run Code Online (Sandbox Code Playgroud)
两个Save已经写了等效的更改,这表示乐观的并发冲突.
通常,这将通过公共域(或类似)层转换为EventStore ConcurrencyException.
解决方案是针对流中事件的新负载重新应用命令.
如果您正在缓存IEventRepository,则不应该因为对数据库具有写访问权限的每个人都可以同等地写入事件流.
我怎么知道这一切?NuGet包中的自述文件非常清楚地解释了这背后的基础,如果您不阅读并重新阅读它们,那么您就是在偷自己/您的雇主,直到您自己解决这个问题为止!