我正在使用块实现数据库模型,不要混淆 disposing 和任何相关的非托管资源需求,但我想知道(基本上)当发生什么时发生的事情db模型不使用块范围。问题不是关于处理或内存(我知道,它会自动为我们做)。关于 SQL连接和相关实例的问题。
所以,这是一个简单的(ActionResult
)示例:
Account account;
using(AccountsModel accountModel = new AccountsModel())
{
account = accountsModel.Accounts.FirstOrDefault(x=> x.Username == username);
if(account == null) return;
account.Name = name;
accountsModel.SaveChanges();
}
ViewBag.Name = account.Name; // Is it safe?
return View();
问题是:“从模型的使用范围中访问Account
类实例(由AccountsModel
提供)是否安全?”
注意:我知道,我无法/无法对超出范围的表执行任何更新。
答案 0 :(得分:0)
只要AccountsModel
' dispose
调用没有做任何事情来销毁它,那么继续访问模型创建的对象应该没有问题。
因此,它实际上更多地取决于dispose