使用块是否会关闭数据库连接,即使连接对象是在另一个类中创建的?
我看到多篇文章说,下面的代码会自动关闭连接,不需要调用
close()
方法,我同意这一点。
using (SqlConnection conn = new SqlConnection(sConn))
{
cmd.Connection = conn;
// do database stuff
//conn.Close(); //// Not required.
}
但是在我的应用程序中,我们遵循这种编码风格:
public class DBConnectionBackboneService : IDBConnectionBackboneService
{
public OracleConnection GetDBConnection()
{
string conString = "<<Connection-String>>;
return new OracleConnection(conString);
}
}
class main()
{
using (dbConnection = _dbConnectionRepo.GetDBConnection())
{
dbConnection.Open();
// Call database procedure.
// Work with dataset.
}
}
我知道连接引用在主类中是相同的,所以理想情况下它应该关闭连接,但只是想确认我的理解是否正确,或者我应该手动关闭连接?