Esta vez tengo una pregunta más filosófica.MVC: ¿Qué es mejor, un gran repositorio por db o uno por entidad comercial?
La mayoría de los libros/tutoriales de MVC parecen sugerir restringir el alcance de un repositorio a un aspecto del modelo y configurar varios repositorios para cubrir todas las clases de modelos. (Por ejemplo: ProjectRep, UserRep, ImageRep, todos mapeando en el mismo db eventualmente).
Veo cómo eso simplificaría las pruebas unitarias, pero no puedo imaginar cómo funcionaría esto en el mundo real, donde la mayoría de las entidades relaciones entre ellos. Al final, siempre me encuentro con una clase de depósito gigantesca por conexión de BD y un FakeRepository igualmente arcaico para pruebas unitarias.
Entonces, ¿cuál es su opinión? ¿Debo tratar de separar los repositorios? ¿Importa incluso si el ProductRep se refiere a datos en el UserRep y viceversa a través de PurchaseHistory? ¿Cómo se asegurarían los diferentes representantes de que no se bloqueen mutuamente cuando acceden al db individual?
Gracias, Duffy
Gracias por sus respuestas reflexivas. Ojalá pudiera marcarlos a todos como respuestas. Supongo que había estado demasiado colgado en una asignación 1: 1 entre el modelo de dominio y DB, pero como todos señalan, los dos pueden ser bestias diferentes por completo. Parece que tendré que leer un poco más sobre los ORM – duffy