C# 是否应关闭ReliableSqlConnection中的SQLConnection?
我在使用C# 是否应关闭ReliableSqlConnection中的SQLConnection?,c#,azure-sql-database,C#,Azure Sql Database,我在使用ReliableSqlConnection时发现的每个示例都类似于: using (var cnn = new ReliableSqlConnection(connString)) { using (var cmd = cnn.CreateCommand()) { cnn.Open(); ... } } 由于Open()返回一个SQLConnection,它是IDisposable,是否应该将其释放 如果我封装在一个using语句
ReliableSqlConnection
时发现的每个示例都类似于:
using (var cnn = new ReliableSqlConnection(connString))
{
using (var cmd = cnn.CreateCommand())
{
cnn.Open();
...
}
}
由于Open()
返回一个SQLConnection
,它是IDisposable
,是否应该将其释放
如果我封装在一个using语句中,会有什么区别或伤害吗
using (var cnn = new ReliableSqlConnection(connString))
{
using (var cmd = cnn.CreateCommand())
{
using(cnn.Open(){
...
}
}
}
您不需要处置,弃用的ReliableSQLConnection类在其ctor中创建
SqlConnection
,并在其dispose()中处置它:
您不需要处置,弃用的ReliableSQLConnection
类在其ctor中创建SqlConnection
,并在其dispose()中处置它:
你是如何/在哪里找到这个的源代码的?我确实在上面找到了它,但这看起来不像是一个官方来源。你知道为什么要调用SQLConnection::Close()
?据我所知,SQLConnection::Dispose()
callsSQLConnection::Close()
它作为EnterpriseLibrary的一部分在我的机器上。Source.WindowsAzure nuget packageCalling Close不需要,正如你所说,它们这样做的事实可能是一种风格选择。你是如何/从哪里找到这方面的源代码的?我确实在上面找到了它,但这看起来不像是一个官方来源。你知道为什么要调用SQLConnection::Close()
?据我所知,SQLConnection::Dispose()
callsSQLConnection::Close()
它是作为EnterpriseLibrary.Source.WindowsAzure nuget packageCalling Close的一部分出现在我的机器上的,正如你所说,它不需要调用Close,事实上它们这样做可能是一种风格选择。
private void Dispose(bool disposing)
{
if (disposing)
{
if (this.underlyingConnection.State == ConnectionState.Open)
{
this.underlyingConnection.Close();
}
this.underlyingConnection.Dispose();
}
}