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