sql >> Base de Datos >  >> RDS >> Sqlserver

SqlConnection SqlCommand SqlDataReader IDisposable

Esta es 100% la forma correcta. Si una clase aprovecha IDisposable debe estar envuelto en un using para asegurarse de que Dispose() se llama el método. Además, la comunicación con una tecnología externa, no administrada, como SQL Server, no debe tomarse a la ligera. El SqlCommand objeto implementa IDisposable por una muy buena razón. El siguiente código es el Dispose() método para SqlCommand objeto:

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

y como puede ver, está publicando una referencia a _cachedMetaData objeto para que también pueda limpiarse.