14 votes

Combien de DBContext dois-je avoir ?

En utilisant Entity, j'ai actuellement un dbcontext qui contient toutes les tables.

Je me demande si c'est ce que tout le monde fait, ou si vous avez un contexte par module par exemple. Pour moi, le dbcontext était une connexion pour mapper les modèles à une base de données, et comme il n'y a qu'une seule base de données, je n'en ai besoin que d'une seule.

Avant d'aller trop loin, je veux voir si c'est approprié.

Donc 1 contexte de base de données par base de données ou plusieurs ?

7voto

Brian S Points 2946

Je suis passé par ce même processus récemment et j'ai trouvé d'excellentes ressources sur le sujet. En voici quelques-unes qui m'ont été très utiles :

Je construisais une application de bureau, et j'ai fini par utiliser plusieurs contextes afin de pouvoir garder la durée de vie liée au module plutôt qu'à l'application. Cela a très bien fonctionné pour moi, et j'aime que mes DbContext n'est pas submergé par DbSets et se limite à ceux qui sont pertinents pour le module actuel.

Dans une application ASP.NET MVC, c'est différent puisque l'application DbContext ne vivront que le temps de la demande, et dans ces cas-là, j'utilise généralement un simple DbContext pour simplifier les choses, sauf si la base de données est très grande. Dans le cas d'une grande base de données, je la diviserai probablement en plusieurs fichiers DbContexts juste pour limiter les frais généraux et le désordre, et garder les choses compartimentées.

0voto

Parv Sharma Points 7070

Actuellement, l'EF n'a pas été conçu pour être décomposé en différents dbContexts. Voici un excellent exposé sur le sujet

Ce que nous avons fait dans ce cas, c'est que nous avons créé un projet différent de notre site MVC juste pour la génération de la base de données et ensuite nous avons des dbContexts séparés pour chaque exigence.

De cette façon, nos dbContexts ne sont jamais volumineux et sont faciles à maintenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X