Dapper.NET Connection / Query Best Practice

.net asp.net c# dapper sql-server

Pregunta

Así que leí un montón de enlaces / preguntas de SO, pero todavía no puedo obtener una respuesta clara sobre esto.

Al realizar consultas SQL con Dapper en una aplicación ASP.NET, ¿cuál es la mejor práctica para abrir / cerrar conexiones?

Este es el patrón que estoy siguiendo actualmente:

using (var db = new SqlConnection(_connectionString))
{
    return db.Query("dbo.SomeQuery");
}

Básicamente, abre / cierra una conexión SQL cada vez que sea necesario.

Desde mi punto de vista, el código anterior debería abrir / cerrar automáticamente la conexión SQL (por ejemplo, no necesito explicitar do db.Open o db.Close ).

El problema que estoy viendo es que después de un tiempo, estoy recibiendo un montón de estos errores:

InvalidOperationExceptionTimeout expiró. El tiempo de espera transcurrido antes de obtener una conexión del grupo. Esto puede haber ocurrido porque todas las conexiones agrupadas estaban en uso y se alcanzó el tamaño máximo de la agrupación.

He tenido un seguimiento del generador de perfiles SQL durante este período de tiempo, y no veo consultas largas que bloqueen nada, por lo que parece que mi aplicación web ASP.NET se está quedando sin conexiones (en lugar de tomar demasiado tiempo para ejecutar una consulta).

¿Puede alguien decirme qué estoy haciendo mal?

Una nota al margen: mi aplicación se ejecuta como una aplicación web de Azure, por lo que lamentablemente no puedo ver cuántas conexiones se están abriendo por la aplicación web. :(

Respuesta popular

Desde mi opinión, usando una declaración que cierra tu conexión, pero le dices a explicity abrir una conexión como esta:

using (var db = new SqlConnection(_connectionString))

{
       db.open();

    return db.Query("dbo.SomeQuery");
}


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué