Можно ли зарегистрировать событие NHibernate, для которого срабатывает ленивая загрузка? - PullRequest
0 голосов
/ 07 июня 2011

Когда мой сервер работает в каком-либо режиме отладки, мне будет интересно регистрировать ленивые загрузки (будь то использование внешнего ключа или загрузка дочерней коллекции).Кто-нибудь знает, выставляет ли NHibernate такое событие?

Редактировать: я не просто хочу включить ведение журнала nhibernate log4net (которое я в настоящее время подавляю ниже Warn), я бы на самом деле хотел бы поймать событие, чтобы ямогу обработать как я хочу.Например, в конце вызова веб-службы, где я записываю, сколько времени занял вызов веб-службы, я могу записать некоторую статистику в дБ, включая количество отложенных загрузок, которые произошли во время этого вызова, и т. Д.

Ответы [ 3 ]

1 голос
/ 07 июня 2011

Вы смотрели на NHProf ?Это должно позволить профилю, как ведет себя nHibernate, и дать вам хорошее представление о том, как работают thigns.

EDIT См. Этот вопрос: NHibernate для веб-приложения, подсчитайте количество отложенной загрузкивхождения по запросу

0 голосов
/ 07 июля 2011

Попробуйте реализовать IInitializeCollectionEventListener или переопределить DefaultInitializeCollectionEventListener.Это срабатывает во время ленивой загрузки коллекции.По крайней мере, в первый раз.Не уверен, что он запускается, когда коллекция загружается из кэша или нет.

0 голосов
/ 08 июня 2011

Есть pre-load и post-load события ...

...