使用语句逻辑

时间:2017-02-23 17:00:31

标签: c# entity-framework

在使用带有Entity Framework的using语句时,是否在函数返回之前进行处理?

例如,假设我有类似的东西

public ActionResult test()
{
   using (var empDb = new empEntities())
  {
     var mod = (from emps in empDb.employees 
                select emps);
     return View(mod);
  }
}

using语句是否在返回View(mod)之前处理实体;或者在视图关闭之前它是否仍然打开?

1 个答案:

答案 0 :(得分:0)

通常,当您使用IDisposable对象时,using语句以正确的方式调用对象上的Dispose方法,并且一旦调用Dispose,它也会导致对象本身超出范围。在使用块内。 using语句确保即使在对象上调用方法时发生异常,也会调用Dispose。您可以通过将对象放在try块中然后在finally块中调用Dispose来实现相同的结果;实际上,这就是编译器如何翻译using语句。