Как найти объект в сеансе активной записи nHibernate / castle - PullRequest
1 голос
/ 27 августа 2010

Я получаю следующую ошибку в приложении Asp.Net Castle ActiveRecord при попытке обновить объект:

"другой объект с таким же значением идентификатора уже был связан с сеансом"

Я посмотрел вверх и вниз по моему коду, чтобы увидеть, где еще объект мог быть создан, но я его не вижу. Это сбивает с толку, так как у меня точно такой же код на другой странице, который отлично работает при обновлениях

Теперь я думаю о том, чтобы попытаться увидеть, где находится этот другой объект в сеансе, и либо убить его, либо узнать, как он попал в сеанс. Как я могу найти этот объект?

[Update] Хорошо, я наконец нашел, где объект вызывается. Тем не менее, я все еще хотел бы знать, как найти объекты в сеансе для дальнейшего использования.

1 Ответ

1 голос
/ 28 августа 2010

Если вам нужно проверить, находится ли объект в вашем сеансе, вы, вероятно, делаете все неправильно с самого начала. Пересмотрите, как вы управляете своим сеансом и постоянными объектами.

Тем не менее, вы можете попробовать ISession.Contains(), но IIRC будет работать, только если вы сверите с точный экземпляр , который хранится в сеансе.

...