У меня есть то, что я считаю довольно распространенным случаем использования NHibernate. Я создаю сущность и пытаюсь сохранить ее, используя ISession.Save (), а затем Transaction.Commit (). На данный момент, я ожидаю, что нарушения таких вещей, как ограничения уникального / первичного ключа, станут мне исключением. Однако я вижу только GenericADOException. Это не помогает мне отличить подлинные сбои БД от таких вещей, как просьба выбрать другое имя для сущности, чтобы сохранить уникальность.
В настоящее время я реализовал уродливый обходной путь запроса в первую очередь, чтобы гарантировать, что ограничения не будут нарушены. Это просто состояние гонки, которое должно произойти, и я действительно не хочу, чтобы пользователи видели: «Ой, БД сделала что-то смешное! виды сообщений.
Есть ли элегантный способ исправить это?