Comment gérer les connexions de base de données avec Dapper dans .NET?

.net c# dapper

Question

J'ai joué avec Dapper, mais je ne suis pas sûr de la meilleure façon de gérer la connexion à la base de données.

La plupart des exemples montrent l'objet de connexion en cours de création dans la classe exemple, voire dans chaque méthode. Mais il m’est faux de faire référence à une chaîne de connexion dans chaque clss, même si elle est tirée du fichier web.config.

Mon expérience a été d'utiliser un DbDataContext ou un DbContext avec Linq to SQL ou Entity Framework, c'est donc nouveau pour moi.

Comment structurer mes applications Web lorsque j'utilise Dapper comme stratégie d'accès aux données?

Réponse populaire

J'ai créé des méthodes d'extension avec une propriété qui récupère la chaîne de connexion de la configuration. Cela permet aux appelants de ne rien savoir de la connexion, qu'elle soit ouverte ou fermée, etc. Cette méthode vous limite un peu puisque vous cachez certaines fonctionnalités de Dapper, mais dans notre application assez simple, cela fonctionne parfaitement pour nous. , et si nous avions besoin de plus de fonctionnalités de Dapper, nous pourrions toujours ajouter une nouvelle méthode d'extension qui l'expose.

internal static string ConnectionString = new Configuration().ConnectionString;

    internal static IEnumerable<T> Query<T>(string sql, object param = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            conn.Open();
            return conn.Query<T>(sql, param);
        }
    }

    internal static int Execute(string sql, object param = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            conn.Open();
            return conn.Execute(sql, param);
        }
    }



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi