Фон
Попытка переключиться с использования перехватчика на события.
У меня есть ValidationInterceptor, который переопределяет OnFlushDirty и OnSave и выполняет мою собственную логику проверки. Если у объекта есть ошибки проверки, выдается исключение, которое возвращается к пользовательскому интерфейсу.
Мой новый ValidationHandler, который реализует IPreUpdate и IPreInsert EventListeners, выполняет ту же логику проверки, но возвращает "true", чтобы указать NHibernate наложить вето на операцию. Что работает, но пользовательский интерфейс не знает, что вето произошло.
Вопрос
Как пользовательский интерфейс узнает, что вето произошло во время событий PreInsert или PreUpdate?
Я пытался вызвать исключение из этих событий, но в результате было выполнено сохранение, и исключение не вернулось в пользовательский интерфейс.
Вся информация, которую имеет пользовательский интерфейс, указывает на успешное сохранение:
- Идентификатор объекта был установлен.
- проверка сеанса IsDirty () имеет значение false.
- нет исключений при попытке сохранения.