con*_*att 3 c# asp.net-mvc entity-framework
我已经交了一些代码,并且在控制器类中有一个属性,它包含初始化的数据库上下文.
public class MyController: Controller
{
protected AssetManagerContext db = new AssetManagerContext("ConnectionString");
// Actions...etc.
[HttpGet]
public ActionResult Edit(int id)
{
MyAsset myAsset = db.Assets.Find(id); // Used and not disposed
return View(myAsset);
}
}
Run Code Online (Sandbox Code Playgroud)
大多数操作使用此Context而不处理它,我担心的是上下文保持开放.
我是否需要关注此上下文未被显式关闭(通过.Dispose()或using {}语句
如果我应该担心,我应该如何处理这种情况,因为变量是类的一部分并在操作中使用?
Controller类有一个dispose方法.因此,在控制器中覆盖该方法并处理该上下文.
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
db.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
它将在上下文完成后自动调用.