使用块的实体框架上下文

时间:2012-08-03 08:14:11

标签: entity-framework exception-handling

我正在编写一个服务层应用程序,它使用Entity框架与数据库进行交互。

我将我的个人“工作单元”放在一个使用区块中,我在其中初始化我的数据上下文。

但是,我需要抛出一些例外,将数据库错误传达给使用我的服务应用程序的应用程序。所以我正在做这样的事情:

using (dbcontext = new DbContext())
{
 throw new Exception("Error while Saving data");
}

任何人都可以确认这是否正常?即使抛出异常,Entity框架数据上下文也会被正确处理掉吗?

2 个答案:

答案 0 :(得分:1)

是。在try/finally块内部使用处理逻辑进行编译时,using块将转换为finally块。

但是,如果Dispose方法抛出异常,则不会抛出异常。

答案 1 :(得分:1)

是的,这是正确的。来自MSDN

  

可以在使用结束时退出using语句   达到语句或抛出异常并且控制离开   语句结束前的语句块。

话虽这么说,我会抛出一个比Exception更具体的例外。