我一直在寻找一种全局监控EF可能引发的异常的方法。因此,我实现了一个IDbCommandInterceptor并使用以下代码将异常记录到控制台。
private void LogIfError<TResult>(DbCommand command, DbCommandInterceptionContext<TResult> interceptionContext)
{
if (interceptionContext.Exception != null)
{
Console.WriteLine(interceptionContext.OriginalException.Message);
}
}
截取方法中的方法被命中,但是当我例如使用.Single()强制“Sequence contains no elements”时,OrignalException总是为空。 我的应用程序中的全局异常处理程序现在正在捕获该异常。
我在这里缺少什么?或者有更好的方法来全局捕获像这样的异常吗?