0

Je suis confus quant à quand créer des instances d'objet ou des classes Static Helper. Par exemple, si j'appelle une méthode pour mettre à jour un modèle de données et le soumettre à la base de données, je crée une instance de DataContext. Quelle est la durée de vie de ce Datacontext et est-il correct de créer de nouvelles instances chaque fois qu'il doit y avoir de nouvelles mises à jour de données?Instances d'objet MVC ou classes statiques?

Dans mon contrôleur, j'ai créé une instance de DataCOntext et réutilisé cette instance lors de la publication dans le contrôleur par exemple.

Répondre

2

Le DataContext est une classe assez légère et est destiné à être utilisé pour une unité de travail. Typiquement, je passe dans une usine qui va créer un DataContext approprié si nécessaire. Je vais généralement envelopper dans un bloc using et convertir les résultats dans une liste (ou un autre objet) de sorte que la requête est effectuée dans le code du contrôleur et les objets résultants transmis à ma vue. De cette façon, le DataContext peut être éliminé (du bloc using) dans la méthode du contrôleur.

La raison pour laquelle une usine est injectée dans le contrôleur est double: elle permet de créer le DataContext à la demande et d'utiliser une usine qui génère un faux DataContext à tester. Ce dernier me permet d'éviter d'utiliser la base de données actuelle dans mes tests unitaires.

+0

Merci. Y at-il un problème avec la création d'un Datacontxt dans la classe du contrôleur et le fait que tous les ActionResults le partagent? – zsharp