我有一个使用该ObjectContext
ExecuteStoreQuery
方法调用的存储过程,以便我可以获得存储过程返回的结果集。
我将它放在 try/catch 块中,但是即使存储过程返回以下错误,它也不会落入 catch 块中。
如何捕获此类错误?
还是有另一种执行存储过程并取回结果集的方法?
在 SQL 中执行时出错:
消息 50000,级别 16,状态 2,过程 ComputeCharges,第 6440 行
计算费用时发生以下错误:
错误号:515,行号:5867
错误消息:无法将值 NULL 插入列“TransactionAmount”,表“Transactions”;列不允许空值。插入失败。
调用代码:
using (DbContext dbContext = GetDbContext())
{
using (ObjectContext objContext = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)dbContext).ObjectContext)
{
try
{
IEnumerable<ResultSet> results = objContext.ExecuteStoreQuery<ResultSet>(sqlString).ToList();
}
catch (Exception e)
{
EventLogger.LogException(e, title: "An error occurred while computing charges.", silent: false);
}
}
}