C# 实体框架记录所有错误

C# 实体框架记录所有错误,c#,entity-framework,logging,exception-handling,log4net,C#,Entity Framework,Logging,Exception Handling,Log4net,记录实体框架引起的任何出现的错误的最佳做法是什么 目前我正在使用log4net,但我认为这与日志框架无关 关于示例API: public class TestController : ApiController { [HttpGet] public IEnumerable<Test> GetTests() { using(var context = new DatabaseContext()) { ret

记录实体框架引起的任何出现的错误的最佳做法是什么

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

关于示例API:

public class TestController : ApiController
{
    [HttpGet]
    public IEnumerable<Test> GetTests()
    {
        using(var context = new DatabaseContext())
        {
            return context.Tests.Where(w=>w.Enabled).ToList();
        }
    }
}
但我不想将API的任何方法体放在try/catch块中


是否有可能在我的
DatabaseContext
类中添加一个
OnException
,我总是可以记录实体框架引发的任何异常

您可以查看以下内容:


更进一步说,如果您想获得有关底层命令的详细信息,还可以实现一个。

检查@PranavPatel haha中的第三种异常处理类型,这个页面看起来很像curry。。。你的意思是
HandleErrorAttribute
?@MatthiasBurger是的,你将其添加到全局筛选器中。异常筛选器和拦截器实现的组合非常适合我的需要。谢谢!
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);
}