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