Quelles sont les meilleures pratiques sur la gestion des connexions de base de données .NET?

Concernant les meilleures pratiques pour la gestion des connexions de base de données dans un .NET application, je sais que, en général, c'est mauvais pour la passer autour d'un objet de connexion.

Cependant, je voudrais faire quelques curiosités:


1. J'ai deux instances de l'entreprise
objets de classes différentes, dans un
relation parent-enfant (l'enfant
est privé.) Lequel des éléments suivants
est le meilleur?

  • Garder une private static connexion ouverte et partagée, utilisée par les deux objets, et reste ouverte jusqu'à ce que le parent est supprimé.
  • Garder deux private static connexions ouvertes, une pour chaque objet, de ne pas être
    fermé jusqu'à ce que l'objet est supprimé.
  • Ne pas garder des connexions fixes; de l'ouverture et par la suite de fermer une nouvelle
    connexion pour chaque méthode que l'exige. Cependant, la plupart de mes méthodes d'exécuter uniquement les 1-3 requêtes, donc cela semble inefficace... ?

2. Ma deuxième question est essentiellement le même, mais pour un seul formulaire. Ce qui est le mieux ici?

  • Garder une private static connexion ouverte et partagée pour la durée de vie de la forme.
  • Ne pas garder une connexion statique; de l'ouverture et par la suite de fermer une connexion pour chaque méthode dans le formulaire de demande (encore une fois, une simple 1-3 requêtes par la méthode.)
Est-ce un winform ou ASP.Net application?
La théorie est que vous ne devriez pas avoir accès à la base de données à partir de votre logique métier -, elle doit être séparée d'accès aux données de la classe. (Disons, par exemple, dans le futur, vous devez les stocker hors ligne dans le format XML, ou de l'utilisation d'Oracle plutôt que SQL Server... vous ne voulez pas de ré-écrire votre logique métier!). Va faire une réponse maintenant..
Je pense que vous devriez lire la question pour moi était un doublon. La question est différente, mais les réponses il y a en fait une réponse à votre question. Si vous ne pensez pas que les réponses, je parie que l'un de l'autre 239 questions avec le même tag répondrais.
Ne peux pas croire combien de gens sont ce qui suggère de garder un objet de connexion autour et vivant.. c'est juste pas le droit!
Johnstone: D'Accord. @Rob: je pense que vous devriez vraiment envisager pourquoi votre entreprise les objets de savoir quoi que ce soit sur une connexion de base de données.

OriginalL'auteur Rob | 2010-07-15