Какая коллекция вызывает исключение NHibernate? - PullRequest
0 голосов
/ 14 августа 2011

Я получаю хорошо известное исключение NHibernate "Незаконная попытка связать коллекцию с двумя открытыми сеансами".Я провел исследование, и я понимаю причину этого, но моя проблема в том, что это происходит случайным образом в полевых условиях, когда я не могу отладить его.

Мой вопрос: есть ли какой-то запрос?исключение или текущее состояние NH, чтобы выяснить, какая коллекция или объект вызывает это?

Кстати, мне удалось унаследовать от SessionScope и переопределить некоторые функции, чтобы добавить в него протоколирование, но это неМне не поможет само исключение.

1 Ответ

0 голосов
/ 15 августа 2011

Присоединение отладчика при возникновении исключений может дать вам подсказку о том, какая коллекция вызывает это.Вы, вероятно, сохраняете конкретный объект, поэтому можете просто попытаться определить, на какую коллекцию он ссылается.Если это не помогает, вы можете попытаться найти экземпляр сеанса NHibernate.Как только вы нашли его в отладчике, вы можете посмотреть на session.Statistics. EntityKeys и CollectionKeys .Это внутренние структуры, которые NHibernate использует для отслеживания объектов.Надеюсь, это поможет ...

...