Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SqlConnection SqlCommand SqlDataReader IDisposable


Esta é 100% a maneira correta. Se uma classe utiliza IDisposable ele deve ser envolvido em um using para garantir que o Dispose() método é chamado. Além disso, a comunicação com uma tecnologia externa - não gerenciada - como o SQL Server não deve ser tomada de ânimo leve. O SqlCommand objeto implementa IDisposable por um motivo muito bom. O código abaixo é o Dispose() método para o SqlCommand objeto:
protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._cachedMetaData = null;
    }
    base.Dispose(disposing);
}

e como você pode ver, está liberando uma referência ao _cachedMetaData objeto para que ele também possa ser limpo.