Мне нужно увидеть код ошибки, сгенерированный SqlException
- однако я не могу заставить его сработать. Я использую NHibernate и у меня на столе установлена настройка SQL UNIQUE CONSTRAINT
. Когда это ограничение нарушается, мне нужно перехватить код ошибки и создать удобное для пользователя сообщение на основе этого. Вот пример моей попытки / улова:
using (var txn = NHibernateSession.Current.BeginTransaction()) {
try {
Session["Report"] = report;
_reportRepository.SaveOrUpdate(report);
txn.Commit();
Fetch(null, report.ReportId, string.Empty);
} catch (SqlException sqlE) {
var test = sqlE.ErrorCode;
ModelState.AddModelError("name", Constants.ErrorMessages.InvalidReportName);
return Fetch(report, report.ReportId, true.ToString());
} catch (InvalidStateException ex) {
txn.Rollback();
ModelState.AddModelErrorsFrom(ex, "report.");
} catch (Exception e) {
txn.Rollback();
ModelState.AddModelError(String.Empty, Constants.ErrorMessages.GeneralSaving);
}
}
Прошу прощения за мое невежество.