【问题标题】:Entity Framework log any errors实体框架记录任何错误
【发布时间】:2017-05-27 08:24:30
【问题描述】:

记录由 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,我总是可以记录实体框架抛出的任何异常?

【问题讨论】:

标签: c# entity-framework logging exception-handling log4net


【解决方案1】:

您可以查看以下内容:

Global Error Handling in ASP.NET Web API 2

Exception Filters

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

【讨论】:

  • 异常过滤器和拦截器实现的组合完全符合我的需要。谢谢!
猜你喜欢
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多