J'ai une méthode dans mon service où je crée des entités, dans la méthode j'appelle la méthode Add de mon référentiel pour que les entités soient persistantes quand j'appelle ma méthode save, devrais-je appelle ma méthode Save en dehors de la classe de service ou dans la méthode où j'ajoute les entités au datacontext?Quand persister vos entités commerciales dans vos classes de services
Répondre
Une classe de service doit aspirer à être autonome et doit prendre soin d'appeler sa propre méthode save() pour le référentiel qu'elle utilise. De cette façon, il permet l'abstraction du référentiel de ses consommateurs. Et s'il choisit de se passer du dépôt par exemple? Si l'appelé est chargé de faire le save(), alors l'appelé() doit aussi changer. Cela entraînerait une fragilité du code.
Les transactions, cependant, sont différentes.
La classe de service doit participer à une transaction globale si elle a déjà été démarrée par l'appelé. En l'absence de transaction globale, la classe de service doit commencer et terminer sa propre transaction. Par conséquent, la méthode save() ne «commettrait» réellement qu'à la fin de la transaction, qu'elle ait été lancée par la classe de service elle-même ou par l'appelé.
Je demanderais, en réponse à quoi créez-vous des entités? les chances sont que la seule raison est d'être persisté finalement. Par définition, votre classe de service serait un bien meilleur endroit pour déclencher le processus de persistance. Les entités dans votre contexte de données doivent uniquement être concernées par la réponse aux commandes provenant de votre service.
- 1. Où placer vos délégués. .
- 2. Databindez-vous vos champs d'objet à vos contrôles de formulaire?
- 3. Où gardez-vous vos Stubs?
- 4. Connaître vos dépendances dans maven
- 5. Comment créez-vous vos usines?
- 6. Comment gérez-vous le changement avec vos services Web?
- 7. Comment mappez LINQ-to-SQL à vos classes BLL?
- 8. Comment savez-vous quand vos commandes mysql ont été exécutées?
- 9. Création de vos propres autorisations
- 10. Quand devriez-vous envisager d'indexer vos tables sql?
- 11. Comment aimez-vous vos commentaires?
- 12. Rupture de vos propres exceptions dans IntelliJ
- 13. Enregistrez vos fonctions de thème dans Drupal
- 14. Préférez-vous vos noms de classe?
- 15. Où stockez-vous vos chaînes de connexion?
- 16. Comment localiser vos applications iPhone?
- 17. Django, où importer vos modules
- 18. Quels sont vos modèles personnels?
- 19. comment construisez-vous vos appareils?
- 20. Construire vos propres contrôles Web
- 21. Contrôles utilisateur ASP.net et entités commerciales
- 22. Quelle est la meilleure façon de mettre en œuvre des changements de suivi sur vos entités?
- 23. Python: faire vos propres déclarations
- 24. doigts glisser sur vos fonds
- 25. Comment faire tester vos clients
- 26. Comment renouveler vos sous-vues?
- 27. Comment stockez-vous vos ventes?
- 28. ExtJs et Symfony - Vos expériences
- 29. Protéger vos images, vos fichiers CSS et Javascript de l'utilisation de sites externes avec Apache?
- 30. CodeIgniter et vos propres scripts