Странное исключение NHibernate: «Неинициализированный прокси передан в save ()».вызвано конфигурацией фабричного события - PullRequest
0 голосов
/ 22 июля 2010

Там просто наличие пользовательского DefaultSaveEventListener подкласса , не содержащего переопределенного или расширенного поведения , достаточно, чтобы вызвать это странное исключение для меня при сбросе или совершении транзакции, используя следующую конфигурацию Xml:

<event type="save-update">
    <listener class="MyNamespace.MyCustomSaveEventListener, MyAssembly" />
</event>

Если я закомментирую вышесказанное, он работает нормально.Но, как я уже сказал, это происходит, даже если не определено поведение переопределенного или расширенного прослушивателя событий.Мне известно, что эти <event> элементы, по-видимому, не являются аддитивными к конфигурации NHibernate по умолчанию, поэтому все, что настроено в этом элементе, заменяет все остальное, отсюда и обычная практика получения из реализаций по умолчанию.

Исключение возникает в классе NHibernate.Event.Default.DefaultSaveOrUpdateEventListener в методе ReassociateIfUninitializedProxy.Это происходит даже при том, что зарегистрирован только этот слушатель и все другие перехваты / расширения удалены из заводской конфигурации.

У кого-нибудь есть идеи по этому поводу?Мне нужно реализовать некоторое расширенное поведение, используя этот интерфейс слушателя.Поймать исключение и выбросить его, похоже, не повредит, но каким должно быть возвращаемое значение?

1 Ответ

1 голос
/ 22 июля 2010

Упс происходило из DefaultSaveEventListener вместо DefaultSaveOrUpdateEventListener ... смена суперкласса убрала проблему - надо открыть глаза.

...