Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SqlConnection SqlCommand SqlDataReader IDisposable

Questo è al 100% il modo corretto. Se una classe sfrutta IDisposable dovrebbe essere racchiuso in un using per garantire che Dispose() viene chiamato il metodo. Inoltre, la comunicazione con una tecnologia esterna, non gestita, come SQL Server, non dovrebbe essere presa alla leggera. Il SqlCommand l'oggetto implementa IDisposable per un'ottima ragione. Il codice seguente è Dispose() metodo per SqlCommand oggetto:

protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._cachedMetaData = null;
    }
    base.Dispose(disposing);
}

e come puoi vedere, sta rilasciando un riferimento a _cachedMetaData oggetto in modo che anche lui possa essere ripulito.