Quelle est la meilleure pratique pour se connecter à la database SQL?

Je veux savoir ce qui est une bonne pratique de se connecter à la database, je conçois une class de connection, et l'utilise toujours pour se connecter à SQL Server:

public class Connection { private SqlConnection conn; private static Connection myConnection; private Connection() { try { conn = new SqlConnection("Data Source=.;Initial Catalog=Padideh;Integrated Security=True"); conn.Open(); } catch (Exception ex) { new ErrorHandler().ErrorLoging("", "Connection", ex.Message, "Cannt Connect To DB."); } } public static SqlConnection GetConnection { get { if (myConnection == null || myConnection.conn.State==System.Data.ConnectionState.Closed) { myConnection = new Connection(); } return myConnection.conn; } } ~Connection() { try { myConnection.conn.Close(); } catch (Exception ex) { new ErrorHandler().ErrorLoging("", "~Connection", ex.Message, "Cannt Close DB Connection."); } } } 

C'est une class singleton et j'ai utilisé sqlConnection, et j'utilise toujours cette class pour me connecter à SQLserver, je veux savoir que c'est un bon moyen et que je peux l'utiliser dans tous les projets. et qu'est-ce qu'une bonne pratique de connection à la database?

Je ne créerais pas un singleton comme indiqué.

Il suffit de créer une nouvelle connection par context d'utilisation , de l'utiliser pour faciliter le traitement de la nature d'IDisposable et de s'appuyer sur Connection Pooling – qui prend déjà en charge les détails appropriés.

Dans l'set, je crois que cette utilisation d'un singleton rendra le traitement des connections – même sans filetage – plus difficile globalement avec un gain nul / minimal.

Bien que je préconise l'utilisation de DI / IoC (bien qu'une simple méthode d'aide statique puisse le faire à la rigueur), cela devrait être utilisé pour get une nouvelle connection par context d'utilisation (ou la durée de vie appropriée).