【发布时间】:2018-08-29 07:58:55
【问题描述】:
我正在使用带有存储库和工作单元模式的 EF Core 2.0。处理所有数据库异常的最佳方法是什么?我可以在提交方法中只使用 try/catch 吗?
public void Commit()
{
try
{
_context.SaveChanges();
}
catch (Exception ex)
{
//code
}
}
SaveChanges() 之外的任何东西都可以抛出异常吗?捕获到的异常接下来应该怎么做?
【问题讨论】:
-
如果您在如此低的级别上添加异常处理(尤其是捕获基本异常),您将隐藏可能的数据库连接问题以及可能发生的任何其他异常
-
首先,EF 已经是一个 UoW 和存储库模式,就一般的异常处理而言,让你自己的(10 次中有 9 次)是多余的,而且比它的价值更麻烦,抓住你所知道的 /期望(并且可以处理),让其余的向上传播。没有一种适合所有方法的方法
-
EF DbContext 实现工作单元模式,DbSet 实现存储库模式
标签: c# .net-core entity-framework-core