C# 实体框架记录所有错误
记录实体框架引起的任何出现的错误的最佳做法是什么 目前我正在使用log4net,但我认为这与日志框架无关 关于示例API: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
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);
}