Возможно, причиной проблемы является настройка по умолчанию «connection-release-mode».
Некоторое время назад я столкнулся с подобной проблемой и обнаружил, что изменение режима connection.release-режима на 'on_close' (вместо значения по умолчанию after_transaction) решило проблему.
Более подробную информацию можно найти в моем блоге
edit: как я думаю, возможно, это можно решить без изменения режима релиза; что произойдет, если вы используете транзакцию для сохранения своего события?
Режим выпуска по умолчанию - после транзакции, так что я думаю; возможно, когда вы используете явную транзакцию, соединение будет закрыто только после транзакции. Вопрос в том, попытается ли NHibernate получить первичный ключ, который был передан объекту внутри этой транзакции, или он будет использовать другую транзакцию ...
Если это не работает, то изменение режима релиза также решит вашу проблему, но, возможно, это не лучший вариант.
Я думаю, что лучший вариант / решение, это сначала использовать явную транзакцию и посмотреть, решит ли это проблему ...