Model退出使用范围时实际发生了什么?

时间:2015-07-16 01:11:32

标签: c# asp.net sql-server scope

我正在使用块实现数据库模型,不要混淆 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提供)是否安全?”

注意:我知道,我无法/无法对超出范围的表执行任何更新。

1 个答案:

答案 0 :(得分:0)

只要AccountsModel' dispose调用没有做任何事情来销毁它,那么继续访问模型创建的对象应该没有问题。

因此,它实际上更多地取决于dispose

的实施