不久前,我为我的 .net 应用程序编写了一个 ORM 层,其中所有数据库行都由 .net 的子类表示DatabaseRecord
。有许多方法Load()
,例如Save()
等。在我的初始实现中,我在DatabaseRecord
例如的构造函数中创建了到数据库的连接
connection = new SqlConnection(
ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString
);
然后,我在访问数据库的方法的开头和结尾Open()
调用SqlConnection 。Close()
在我看来(作为熟悉编程但对 c# 和 .net 不熟悉的人)这似乎是最有效的做事方式 - 建立一个连接并在课堂内必要时打开/关闭它。
不过,我刚刚读了一些书,似乎在很多地方都推荐了这种模式:
using (var connection = new SqlConnection(...)) {
connection.Open();
// Stuff with the connection
connection.Close();
}
我明白为什么它是可取的 -Dispose()
即使您在中间所做的事情导致未捕获的异常,连接也会自动进行。我只是想知道new SqlConnection()
像这样多次调用的开销是多少。
连接池已启用,因此我认为开销很小,第二种方法应该是最佳实践,但我只是想确保我的假设是正确的。