c# - 如果页面在 using 块内被重定向,DB Context 会被自动处理吗?
问题描述
最近我发现我们的一个网络应用程序出现 CPU 峰值和内存泄漏,我试图找出原因,下面的代码类似于加载时间最长的页面,有人可以告诉我有什么问题吗代码,我怀疑当 if 语句匹配并重定向到另一个页面时,dbcontext 对象没有被释放。
using (databaseEntities dbContext = new databaseEntities())
{
TABLE1 Existing = dbContext.TABLE1.Where(R => R.IsComplete).FirstOrDefault();
if (Existing != null)
{
return RedirectToAction("SecondView");
}
TABLE1 obj = new TABLE1();
obj.Name = "Name";
obj.City = "City";
obj.Date_Created = DateTime.Now;
dbContext.TABLE1.Add(obj);
dbContext.SaveChanges();
}
解决方案
执行离开范围后,您的 dbContext 立即处置。所以我认为这段代码没有任何问题。
using 语句编译为 try-finaly 语句,该语句在 finaly 块中调用对象的 dispose 方法。
有关更多信息,请参阅下面的链接。
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-statement
推荐阅读
- firebase - 此 Firebase 信息消息是否会导致问题?
- c# - 从文件路径返回网络名称
- animation - A-Frame Animation-mixer 在特定时间帧开始动画
- python - VSCode Code Runner 不遵循 settings.json
- php - 访问此数组数据
- javascript - AsyncStorage 没有在 ReactNative 中保留我的用户数据
- linux - 如何使我的电子应用程序可在 Linux 上安装
- linux - 创建目录列表打印机
- c - 使用 GMP 库时出现分段错误(核心转储)
- jquery - 猫头鹰旋转木马 rtl 导航箭头问题