【发布时间】:2012-03-21 19:45:53
【问题描述】:
这是我一直想知道的……会吗?
因为每当我编写代码以使用数据库连接时,我总是必须确保在处理下一个片段之前关闭。
但是,如果我有一个 ChildWindow,它在其构造函数中打开一个连接并且在它点击保存按钮或取消按钮之前不关闭它。那么如果整个应用程序关闭,数据库连接会立即关闭吗?还是必须等待超时自动关闭?
编辑:
所以我试图保持实时连接打开以记录我的应用程序上的所有错误:
public App()
{
ErrorHelper errorHelper = new ErrorHelper(); // Will open DB connection
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(currentDomain_UnhandledException);
}
/// <summary>
/// For catch all exception and put them into log
/// </summary>
void currentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
errorHelper.WriteError(e.ExceptionObject as Exception);
}
因为我不喜欢每次记录单个错误时打开连接的方式,所以我想一直保持连接打开。这与我描述的 OP 相似。在这种情况下,它始终保持连接打开。但是数据库连接退出后会立即关闭吗?
【问题讨论】:
-
@Oded,我没有看到任何关于现有应用程序行为的假设。
-
@Oded 按照要求,我放了一些我正在做的事情。但就像 mikerobi 说的,我想知道退出应用程序的行为。不是确保连接关闭的解决方法。
标签: c# entity-framework ado.net database-connection