【发布时间】:2011-03-22 14:46:27
【问题描述】:
我需要查看由SqlException 生成的错误代码 - 但是,我无法触发。我使用 NHibernate 并在我的桌子上有一个 SQL UNIQUE CONSTRAINT 设置。当违反该约束时,我需要捕获错误代码并据此生成用户友好的消息。这是我的 try/catch 示例:
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);
}
}
请原谅我的无知。
【问题讨论】:
标签: c# asp.net asp.net-mvc nhibernate exception