1

一部のエンティティで NHibernate の削除を実行すると、次のエラーが発生します。

StaleStateException - Unexpected row count: 0; expected: 1 

アプリですでにそのようなエンティティを大量に削除しましたが、今回は削除できません。SQL Server Profiler を使用すると、NHibernate が必要なクエリを送信してリレーションシップを削除し、delete from XXX where id = xx. そして、2 番目のクエリの後にクラッシュします (最初の削除クエリが実際にエンティティを削除したため、0 を返す必要があります)。

同じ種類の他のエンティティでは、1 つしかありませdeleteん...この問題についてさらに調査するためのヒントを探しています。

編集:削除されたエンティティは集約ルートです。

4

1 に答える 1

0

質問に詳細がなければ、私たちができる最善のことは、問題が何であるかをランダムに推測することだと思います. 問題が何であるかについて私は 1 つの推測を持っていますが、おそらく他の人も別の推測を持っているので、他の人がこの問題の考えられる原因に貢献できるように、この投稿をコミュニティ wiki として開始します。

cascade="all-delete-orphan"1.バッグからの複数回の同一の削除。

バッグに既にアイテムが含まれていて、同じアイテムを再度追加した場合、コレクションから 2 つの同一のアイテムを削除すると、同じアイテムが 2 つ削除される可能性があります。

他のアイデアはありますか?

于 2013-09-10T14:16:15.367 に答える