Entity Framework 如何记录任何错误?

3

如何记录 Entity Framework 引起的出现错误?

我目前使用 log4net,但我认为这与日志框架无关。

以下是一个示例 API:

public class TestController : ApiController
{
    [HttpGet]
    public IEnumerable<Test> GetTests()
    {
        using(var context = new DatabaseContext())
        {
            return context.Tests.Where(w=>w.Enabled).ToList();
        }
    }
}

现在,我必须把我的方法主体放在try / catch中(并且我必须把所有控制器的方法主体都放在try / catch块中)

try
{
    using (var context = new DatabaseContext())
    {
        return context.Tests.Where(w=>w.Enabled).ToList();
    }
}
catch(Exception e)
{
    // TODO: handle also those ValidationErrors, thrown by Entity Framework
    // so here we get a lot more code
    _logger.Error(e);
}

但我不想在我的API中的任何方法体中加入try/catch块。

是否有可能在我的DatabaseContext类中添加一个OnException,以便我始终可以记录由Entity Framework引发的任何异常?


1
请查看以下链接中关于ASP.NET MVC异常处理的第三种类型:http://www.dotnetcurry.com/aspnet-mvc/1068/aspnet-mvc-exception-handling - Pranav Patel
@PranavPatel 哈哈,这个页面看起来真的像咖喱... 你是指 HandleErrorAttribute 吗? - Matthias Burger
1
@MatthiasBurger 是的,您可以将其添加到全局过滤器中。 - William Xifaras
1个回答

2

异常过滤器和拦截器实现的组合完美地满足了我的需求。谢谢! - Matthias Burger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接