Die meisten, die (N)Hibernate benutzen, kennen bestimmt diesen Fehler:

NHibernate.ObjectDeletedException:

deleted object would be re-saved by cascade (remove deleted object from associations)

Mir hat der Fehler seit einigen Tagen den Schlaf geraubt, weil ich einige delete-Operationen nicht durchführen konnte. Erschwert wurde es dadurch, dass der Fehler immer in einem Objekt auftrat, welches ich gar nicht angefasst habe. Wenn ich dieses eine Objekt dann angefasst habe, trat der Fehler wieder in einem anderen, nicht angefassten, Objekt auf.

Der Rätsels Ursache war folgendes: Ich habe mir die Mapping-Dateien mit GenWise und dabei auch many-to-many Beziehungen generieren lassen. Diese Beziehungen wurden mit cascade=all-delete-orphan generiert. Wenn man sich jetzt die Hibernate Doku zu Transitivier Persistenz anschaut (die NHibernate Doku hat teilweise einige Schwächen, also lieber gleich die "große" nehmen), dann steht dort, dass cascade=all bei many-to-many eigentlich keinen Sinn macht. So war es dann auch.

Ich habe die Dateien mit cascade=none neu generieren lassen und siehe da: Jetzt läufts und ich kann wieder in Ruhe schlafen…