【发布时间】: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,我总是可以记录实体框架抛出的任何异常?
【问题讨论】:
-
@PranavPatel 哈哈,这个页面真的很像咖喱……你是说
HandleErrorAttribute? -
@MatthiasBurger 是的,您将其添加到全局过滤器中。
标签: c# entity-framework logging exception-handling log4net