web-dev-qa-db-fra.com

Modèle de référentiel explication étape par étape

Quelqu'un peut-il m'expliquer s'il vous plaît le modèle de référentiel dans .NET, étape par étape, en donnant un exemple très simple ou une démo.

Je sais que c'est une question très courante, mais je n'ai pas encore trouvé de réponse satisfaisante.

265
Sa Patil

En résumé, je décrirais l'impact plus large du modèle de référentiel. Cela permet à tout votre code d'utiliser des objets sans avoir à savoir comment les objets sont persistés. Toute la connaissance de la persistance, y compris le mappage des tables aux objets, est contenue en toute sécurité dans le référentiel.

Très souvent, vous trouverez des requêtes SQL dispersées dans la base de code et lorsque vous ajouterez une colonne à une table, vous devrez rechercher des fichiers de code pour essayer de trouver les utilisations d'une table. L'impact du changement est considérable.

Avec le modèle de référentiel, il vous suffira de modifier un objet et un référentiel. L'impact est très faible.

Il serait peut-être utile de réfléchir à la raison pour laquelle vous utiliseriez le modèle de référentiel. Voici quelques raisons:

  • Vous avez un seul endroit pour modifier votre accès aux données

  • Vous avez un seul endroit responsable d'un ensemble de tables (généralement)

  • Il est facile de remplacer un référentiel par une fausse implémentation pour les tests. Vous n'avez donc pas besoin de disposer d'une base de données pour vos tests unitaires.

Par exemple, si vous utilisiez MySQL et souhaitiez passer à SQL Server, je ne l’ai jamais vu dans la pratique!

190
Fenton

Voici un exemple intéressant: Exemple de modèle de référentiel en C #

Fondamentalement, le référentiel cache les détails de la manière exacte dont les données sont extraites/conservées de/dans la base de données. Sous les couvertures:

  • pour la lecture, il crée la requête répondant aux critères fournis et renvoie le jeu de résultats
  • pour l'écriture, il envoie les commandes nécessaires pour que le moteur de persistance sous-jacent (une base de données SQL, par exemple) enregistre les données.
178
twoflower