在使用带有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)之前处理实体;或者在视图关闭之前它是否仍然打开?
答案 0 :(得分:0)
通常,当您使用IDisposable对象时,using语句以正确的方式调用对象上的Dispose方法,并且一旦调用Dispose,它也会导致对象本身超出范围。在使用块内。 using语句确保即使在对象上调用方法时发生异常,也会调用Dispose。您可以通过将对象放在try块中然后在finally块中调用Dispose来实现相同的结果;实际上,这就是编译器如何翻译using语句。