¿Porque usar using al conectarse a una base de datos con C#?
Las Razones
Una de las cosas mas importante a la hora de obtener el resultado de una consulta SQL es como abrimos y cerramos la conexión. Y en todo el tiempo de desarrollo que llevo me he percatado que muchas veces independiente del motor de base de datos (relacional) la forma de hacer las peticiones dependiendo del programador a veces varia como se realiza.
En lo personal me molesta mucho utilizar Entity Framework de .NET, nunca he sido partidario de utilizarlo, pero en desarrollos pequeños me ha sacado mas de un apuro, pero hasta en este framework de persistencia ocurre lo mismo (y por eso también lo incluyo) que con una conexión nativa. Cómo abrir y cerrar una conexión.
Muchos programadores pecan de hacer consultas abriendo la conexión, pero no la cierran.
Lo mencionado arriba es grave, por que si la aplicación tiene muchas peticiones o ejecuta el método que abre la conexión muchas veces, por cada petición que se realice y que se deba abrir la conexión, será otra más abierta.
En la imagen siguiente, presento un claro ejemplo en Entity Framework, que se crea un objeto Context en el cual no se utiliza un using, y esto es grave.

También aplica si la petición se hace a través de SqlConnection.

En ambos casos, la conexión queda abierta y se van a ir juntando de a poco hasta el punto de colapsar la aplicación o el motor de base de datos (en el peor de los casos). Para solucionar esto, en ambos casos la solución podría ser usar using al crear el objeto de conexión, o simplemente abrir y cerrar la conexión de manera manual (en el caso de SqlConnection).
Aplicando la Solución
En el primer caso, la solución es simplemente al crear el objeto Context com using.

En el segundo caso tenemos la opción de usar using, o simplemente usar open y close.


Con esto, no tendrás problemas de rendimiento por muchas conexiones SQL abiertas, ni tampoco correrás el riesgo de que la aplicación colapse o tenga intermitencia.
En mi trabajo, recibimos un proyecto B2B muy grande, el cual tenia mas de 110 referencias a objetos Context sin using, y al paso de las horas de estar el sitio arriba colapsaba el servidor al punto de tener que reiniciarlo para que todo volviera a la normalidad. Por lo que por experiencia personal, siempre usen un bloque using para hacer llamadas a la base de datos independiente si es nativo o con EF.
Aunque este articulo no pretende explicar qué es el using, dejo un link que explica el funcionamiento del using statement.
Recuerda que si te gusta este contenido, puedes hacer una donación para seguir manteniendo y aportando contenido aquí