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

MFa*_*MAR 5 c# sql-server asp.net scope

我正在使用块实现db模型,不要混淆处理和任何相关的非托管资源需求,但我想知道(基本上)当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();
Run Code Online (Sandbox Code Playgroud)

问题是:" 使用范围访问模型的Account类实例(由提供者提供AccountsModel)是否安全?"

注意:我知道,我不能/不能在表格上执行任何更新超出范围.

Jus*_*ony 0

只要 的AccountsModel调用dispose不执行任何操作来销毁它,那么继续访问模型创建的对象应该没有问题。

所以,这实际上更多地取决于实施dispose