Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 使用块的实体框架上下文_Entity Framework_Exception Handling - Fatal编程技术网

Entity framework 使用块的实体框架上下文

Entity framework 使用块的实体框架上下文,entity-framework,exception-handling,Entity Framework,Exception Handling,我正在编写一个服务层应用程序,它使用实体框架与数据库交互 我将我个人的“工作单元”封装在一个using块中,在这里我初始化了我的数据上下文 但是,我需要抛出一些异常,以便将数据库错误传递给正在使用我的服务应用程序的应用程序。所以我在做这样的事情: using (dbcontext = new DbContext()) { throw new Exception("Error while Saving data"); } 有人能确认这是否正常吗?即使在抛出异常后,实体框架数据上下文是否也会被正

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

我将我个人的“工作单元”封装在一个using块中,在这里我初始化了我的数据上下文

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

using (dbcontext = new DbContext())
{
 throw new Exception("Error while Saving data");
}
有人能确认这是否正常吗?即使在抛出异常后,实体框架数据上下文是否也会被正确释放?

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

但是,如果
Dispose
方法引发异常,则不会在外部引发异常。

是,这是正确的。发件人:

using语句可以在using结束时退出 语句,或者抛出异常并离开控件 语句结束前的语句块


也就是说,我会抛出一个比
异常更具体的异常。

谢谢Ken。是的,我将在现实中使用更具体的例外:)