为了账号安全,请及时绑定邮箱和手机立即绑定

如果页面在 using 块内被重定向,DB Context 会被自动处理吗?

如果页面在 using 块内被重定向,DB Context 会被自动处理吗?

C#
斯蒂芬大帝 2022-01-09 17:02:39
最近我发现我们的一个网络应用程序出现 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();}
查看完整描述

2 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

执行离开范围后,您的 dbContext 立即处置。所以我认为这段代码没有任何问题。
using 语句编译为 try-finaly 语句,该语句在 finaly 块中调用对象的 dispose 方法。
有关更多信息,请参阅下面的链接。
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-statement

查看完整回答
反对 回复 2022-01-09
?
catspeake

TA贡献1111条经验 获得超0个赞

数据库上下文似乎不是问题,因为它在保存更改后就超出了范围。问题可能出在数据库或您为 databaseEntities 编写构造函数的方式上。using 将始终调用 finally 并且范围肯定会结束。


查看完整回答
反对 回复 2022-01-09
  • 2 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号