J'ai l'habitude de créer moi-même la connexion à la base de données et de contrôler manuellement sa durée de vie avec `using {} '. Par exemple:Pour encapsuler la connexion à une base de données dans des objets métier ou non?
SqlConnection sqlConnection = new SqlConnection(connectionString);
using(sqlConnection) {
BusinessObject myBusinessObject = new BusinessObject(sqlConnection);
// do stuff with the business object
...
}
De cette façon, il est évident et évident que j'utilise une ressource qui doit être nettoyée correctement. Cependant, cela finit par être beaucoup d'efforts répétitifs. Je suis tenté de créer la connexion Sql à l'intérieur de l'objet métier et d'implémenter IDisposable dessus. Je fermerais la connexion dans la méthode Dispose().
using(BusinessObject myBusinessObject = new BusinessObject()) {
// do stuff with myBusinessObject
...
}
Le problème que je vais avoir est qu'il pourrait ne pas être si évident que l'objet métier doit être disposé à moins que vous voyez dans l'utilisation.
Comment voulez-vous les gars le faire?
Merci pour la réponse. Le code auquel je pense ici est assez simple. J'ai déjà utilisé NHibernate, je ne suis pas sûr de vouloir y aller pour ce projet. Mais comme vous l'avez dit, peut-être que faire un tour à la source serait un bon exercice. – dnewcome
Si nHibernate semble trop, alors pensez à LINQtoSQL. D'après mon expérience, c'est très léger.Vous pouvez considérer les entités L2S comme des objets DTO ou les étendre avec des classes/méthodes partielles dans des objets métier à part entière. – tvanfosson