Riutilizzo della connessione al database con Dapper nell'API Web .NET

Riutilizzo della connessione al database con Dapper nell'API Web .NET

Il codice è fuorviante. In realtà non stai creando un nuovo connessione quando lo fai nella maggior parte dei casi. Per impostazione predefinita, il pooling è abilitato per una connessione a meno che tu non gli dica esplicitamente di non farlo.

Non sono sicuro al 100% dei criteri esatti alla base del pooling, ma il succo è che se riutilizzi rapidamente la stessa stringa di connessione nel codice, il pooling dovrebbe effettivamente creare solo una connessione dalla tua app a SQL Server, invece di creare una nuova connessione ogni volta che esegui new SqlConnection e aprilo.

Eliminando la connessione, stai fondamentalmente segnalando che quel particolare utilizzo è terminato .... quindi la logica alla base del mantenimento del pool può sapere che hai finito con quella particolare connessione. Ancora una volta non so esattamente come venga implementato il pool, ma immagino che tenga traccia internamente di quante connessioni dal codice vengono effettuate in modo che possa decidere se mantenere aperta o meno una connessione effettiva a SQL Server.


No