1

在某些实体上执行 NHibernate 删除时,我们遇到以下错误:

StaleStateException - Unexpected row count: 0; expected: 1 

我们已经在我们的应用程序中删除了大量此类实体,但这次不能。使用 SQL Server Profiler,我可以看到 NHibernate 发送所需的查询以删除关系等,然后发送两次delete from XXX where id = xx. 它在第二个查询后崩溃(它应该返回 0,因为第一个删除查询实际上删除了实体)。

对于其他同类实体,只有一个delete……我正在寻找提示以对该问题进行更多调查。

编辑:删除的实体是聚合根。

4

1 回答 1

0

如果问题没有更多细节,我认为我们能做的最好的就是随机猜测问题可能是什么。我对问题是什么有一个猜测,也许其他人有其他猜测,所以我将把这篇文章作为一个社区 wiki 开始,以便其他人可以贡献这个问题的可能原因。

1. 从一个cascade="all-delete-orphan"袋子中取出多个相同的东西。

如果一个包已经包含一个项目,但您再次添加了相同的项目,那么当您从集合中删除这两个相同的项目时,可能会在同一个项目上获得两次删除。

还有其他想法吗?

于 2013-09-10T14:16:15.367 回答