Question

Si le modèle qui sera transmis à la vue être complètement défini par un seul appel à un référentiel unique. En d'autres termes, le modèle d'un seul agrégat, ou si mon modèle est construit à partir d'agrégats séparés, chacun avec son propre référentiel, dans la couche de service?

La façon dont je l'ai maintenant, est que j'appelle simplement un référentiel unique pour remplir l'ensemble du modèle qui est ensuite présenté par View. On dirait des agrégats, et Référentiels modèles deviennent tout le même concept.

Était-ce utile?

La solution

Mon qui est pour « Aucun de ces éléments. » Je préfère utiliser des modèles de présentation pour les vues et les modèles de présentation ne pas besoin d'un référentiel. Il existe une variété de raisons:

  • En utilisant des modèles de présentation vous permet de concevoir des vues et des contrôleurs avant de concevoir le modèle et base de données. Vous pouvez donc arriver tôt entrée utilisateur.
  • Modèles de présentation vous permettent de passer d'un modèle assez « plat » à la vue, de sorte que vous ne pas besoin de se soucier des préoccupations ORM telles que le chargement paresseux.
  • Modèles de présentation simplifient souvent la liaison modèle.
  • Lorsque vous utilisez un modèle de présentation, vous n'avez pas besoin de vous soucier accidentellement champs retourner un utilisateur ne doit pas être autorisé à voir, ou la mise à jour accidentelle champs que l'utilisateur ne doit pas être autorisé à mettre à jour, parce que vous n'avez pas reçu une liste blanche correct.

Maintenant, plus précisément en suivant la ligne de votre question: Avez-vous construire une instance du modèle de présentation? Combien de dépôts sont nécessaires? Eh bien, cette question maintenant presque lui-même répond. Vous concevez le modèle de présentation à suivre les exigences de la vue. Vous concevez les référentiels suivants bonnes pratiques TDD, y compris l'identification des racines globales. Maintenant, la question de « combien de référentiels ai-je besoin d'instancier ce modèle » est simple. Vous examinez les racines globales requises par le modèle, et d'utiliser ceux dont vous avez besoin. En général, je peux le faire en une seule requête LINQ.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top