SaveOrUpdateWithExceptionHandling
, относящийся к ISession
, поднимает некоторые красные флаги.
В NHibernate, если ваш сеанс выдает исключение, он теперь находится в несогласованном состоянии и должен быть немедленно утилизированным .
Вы не можете делать "... с обработкой исключений" в вашей транзакции, и это может быть источником ваших ошибок. Вам, безусловно, потребуется пересмотреть свой подход к этой проблеме.
В случае ошибки (возможно, из-за параллелизма, что-то неясно, что вы пытаетесь сделать), вам нужно откатить всю транзакцию и попробуйте снова.