0

我在我的 MVC 网站中使用实体框架,并使用 using 语句处理我的数据库上下文。现在我的问题是,如果我在返回后关闭 using 语句,数据库上下文是否会正确处理。前任:

 public ActionResult SomeAction(){

      using (var DB = new DatabaseContext()){

       ....           

       return View();                
      }
 }

我必须在返回之前关闭 using 语句吗?或者它会以我使用它的方式正确处理。

4

1 回答 1

1

我必须在返回之前关闭 using 语句吗?或者它会以我使用它的方式正确处理?

它将自动为您处置。您可以参考此答案以获取更多信息。该Dispose方法被调用但是该using语句被执行,除非它是一个突然的全过程终止。最常见的情况是:

  • Areturn块内
  • 块内抛出(而不是捕获)异常
  • 自然到达方块的尽头

基本上,using语句主要是try/finally块的语法糖 - 并且finally具有所有相同的属性。

C# 4 规范的第 8.13 节:

using声明被翻译成三个部分:获取、使用和处置。资源的使用隐含在try包含finally子句的语句中。该finally子句处理资源。

于 2013-09-01T09:25:39.253 回答