0

J'ai fait un peu de programmation Linq avec TDD ASP.Net MVC et je l'ai adoré. En digressant, j'apprends maintenant les formes de Web contre les procs stockés et ne peux pas employer linq. Je voudrais conserver une partie du couplage lâche et de la testabilité apprécié avec MVC.Aide à la conception de mon propre DataContext brut

Je n'avais pas le temps d'apprendre et de configurer une infrastructure d'injection de dépendance. J'ai donc créé une fabrique d'objets pouvant être configurée pour créer des instances fictives ou réelles selon ce qui est requis. Le problème avec cette approche est que l'usine sert de nouvelles instances de mes référentiels de test, donc quand l'entité A demande le référentiel pour l'entité B, elle obtient une nouvelle instance sans les modifications effectuées dans le contexte de mon test unitaire - ceci est le problème. Comme mes instances de test n'ont aucun mécanisme de persistance et que je n'utilise pas l'injection de dépendance, j'ai besoin d'un moyen pour l'Entité A d'accéder au contexte de données actuel de mon test unitaire pour pouvoir récupérer le référentiel sale de l'Entité B. J'ai l'habitude de créer mon dataContext en tant que singleton, mais en raison des problèmes de concurrence avec les applications web, je l'ai exclu.

Je cherche un joli motif à suivre à la place. En tant qu'interruption, j'ai demandé que tous les référentiels et objets métier soient instanciés avec un contexte de données créant un type de hiérarchie où dataContext instancie le référentiel avec dc qui instancie à son tour les objets métier avec dc.

Je n'ai pas utilisé de modèle composite, d'héritage ou d'interface (sauf pour les moqueurs). Je ne suis pas un programmeur OO mais ça a l'air plutôt moche. Est-ce que quelqu'un a eu de bonnes suggestions de modèles que je devrais suivre qui pourraient ranger ma solution?

TIA

+0

Etes-vous sûr de ne pas pouvoir utiliser LINQ à cause des procédures stockées? LINQ to SQL les supporte. –

+0

Ouais - l'exigence dit 'no linq' –

Répondre

0

Consulter le modèle de mappeur de données, il devrait y avoir beaucoup d'exemples là-bas, cela est l'approche que nous utilisons et cela fonctionne bien pour nous.

+0

Ok, ça me donne un avantage. http://martinfowler.com/eaaCatalog/dataMapper.html décrit les dépôts que j'ai créés mais pas le problème de contexte (Peut-être que j'ai besoin du livre). "... le Data Mapper lui-même est même inconnu de la couche de domaine." Je voudrais savoir comment cela est possible sans charger toutes les dépendances dans le graphe d'objet à la fois. –

Questions connexes