0

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

我将我的个人“工作单元”包含在一个 using 块中,我在其中初始化我的数据上下文。

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

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

谁能确认这是否可以?即使在引发异常后,实体框架数据上下文是否会被正确处理?

4

2 回答 2

1

是的。使用块内的处理逻辑进行编译时,使用块将转换为块。try/finallyfinally

Dispose但是,如果方法抛出异常,您的异常将不会被抛出。

于 2012-08-03T08:31:24.137 回答
1

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

当到达 using 语句的末尾或抛出异常并且控制在语句结束之前离开语句块时,可以退出 using 语句。

话虽如此,我会抛出一个比那个更具体的异常Exception

于 2012-08-03T08:31:59.423 回答