【发布时间】:2020-10-27 18:37:45
【问题描述】:
我在 Jonathon Oliver 的 EventStore 中看到以下错误:
错误:23505:重复键值违反唯一约束“ix_commits_revisions”
任何想法为什么会发生这种情况?
【问题讨论】:
标签: cqrs neventstore
我在 Jonathon Oliver 的 EventStore 中看到以下错误:
错误:23505:重复键值违反唯一约束“ix_commits_revisions”
任何想法为什么会发生这种情况?
【问题讨论】:
标签: cqrs neventstore
假设索引是我在谷歌上搜索的:
CREATE UNIQUE INDEX IX_Commits_Revisions ON Commits (
StreamId, StreamRevision, Items);
两个Saves 编写了等效的更改,这表示乐观并发违规。
通常这将由公共域(或类似)层转换为 EventStore ConcurrencyException。
解决方案是针对流中事件的新负载重新应用命令。
如果您正在缓存 IEventRepository,您不应该这样做,因为对数据库具有写入权限的每个人都可以平等地写入事件流。
我怎么知道这一切? NuGet 包中的自述文件非常清楚地解释了这背后的基础,如果你不阅读并重新阅读它们,直到你自己解决这个问题,你就是在从你自己/你的雇主那里偷东西!
【讨论】: