Dapper doit-il utiliser une instruction "using"?

c# dapper micro-orm

Question

J'ai vu des exemples où quelqu'un fait:

IDbConnection db = new MySqlConnection(conn);

var people = db.Query<People>("SELECT * FROM PEOPLE").ToList();

ou est-ce que c'est une mauvaise pratique et est-ce que toutes les requêtes doivent être utilisées en utilisant des instructions comme celles-ci:

using (var db = new MySqlConnection(conn))
{
var people = db.Query<People>("SELECT * FROM PEOPLE").ToList();
}

Réponse acceptée

Comme d' autres l' ont souligné à juste titre, la meilleure pratique en général consiste à utiliser l' using en tout temps un objet implémente IDisposable et vous savez que la durée de vie de l'objet va être court - c'est pas plus que la durée de la méthode actuelle. Cela garantit que les ressources limitées du système d'exploitation sont nettoyées en temps opportun. Même si la disposition d'un objet est "backstopped" par son finaliseur, vous ne voulez pas être dans une situation où, par exemple, vous avez un verrou sur un fichier ou une base de données ou quelque chose qui ne sera publié milliards de nanosecondes à partir de maintenant.

Cependant, je tempérerais ce conseil en disant qu’il existe un petit nombre de types qui implémentent IDisposable pour des raisons autres que l’élimination en temps voulu des ressources non gérées. Dans certains cas très spécifiques , vous pouvez ignorer l' using toute sécurité. Cependant, il est presque jamais de mal à utiliser l' using , même quand il est pas à proprement parler nécessaire, donc mon conseil pour vous est de pécher par excès de prudence et l'utilisation excessive, plutôt que sous-utilisation à l' using .


Réponse d'expert

Dapper n'a pas de vue à ce sujet; Ce que vous using ici est la connexion à la base de données. Si vous avez terminé avec la connexion: vous avez terminé avec la connexion. Fondamentalement, oui, vous devriez probablement using .




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