【发布时间】:2016-08-09 16:26:16
【问题描述】:
我有一个使用实体框架 6.0 的 MVC Razor 应用程序。但是,如果数据库出现故障或其他情况,我的代码会开始在各种随机位置抛出异常,例如当我开始评估我的 IEnumerable<T>s 和 IQueryable<T>s 时。
模型构造函数是生成的代码,如果我修改它会被覆盖,这无论如何都无济于事,因为构造函数不会抛出异常。相反,异常出现在这样的地方
using (var dataContext = new ArchiveVMADDatabase.ArchiveDatabaseModel())
{
IQueryable<HDeploy> deploys = Helpers.GetProdDeploysFromArchive(dataContext);
var query = getBranchSelectListQuery(deploys);
listItems.AddRange(query);// EXCEPTION IF DB IS DOWN
}
有没有一种好方法可以让我在一个地方处理这个问题并避免将我近 100% 的代码包装在巨大的 try catch 块中?如果它不能与数据库对话,我真的很想让它返回空集。
【问题讨论】:
标签: c# entity-framework exception-handling entity-framework-6 code-reuse