¿Cómo usar el patrón de repositorio correctamente?

Me pregunto cómo debería agrupar mis repositorios. Como en los ejemplos que he visto en asp.net mvc y en mis libros básicamente usan un repositorio por tabla de base de datos. Pero eso parece ser una gran cantidad de repositorios que llevan a tener que llamar muchos repositorios más tarde para burlarse y esas cosas.

Así que supongo que debería agruparlos. Sin embargo no estoy seguro de cómo agruparlos.

En este momento hice un repositorio de registro para manejar todas mis cosas de registro. Sin embargo, hay como 4 tablas que necesito actualizar y antes tenía 3 repositorios para hacer esto.

Por ejemplo, una de las tablas es una tabla de licencias. Cuando se registran, miro su clave y la compruebo para ver si existe en la base de datos. Ahora, ¿qué sucede si necesito verificar esta clave de licencia o alguna otra cosa de esa tabla en algún otro lugar que no sea el registro?

Un lugar podría ser el inicio de sesión (verifique si la clave no está vencida).

Entonces, ¿qué haría yo en esta situación? Vuelva a escribir el código de nuevo (break DRY)? Trate de unir estos 2 repositorios juntos y espere que ninguno de los métodos sea necesario en algún otro momento (como es posible que tenga un método que verifique si se usa userName, tal vez lo necesite en otro lugar).

Además, si los fusiono, necesitaría que 2 capas de servicio vayan al mismo repositorio, ya que creo que tener toda la lógica para 2 partes diferentes de un sitio sería largo y tendría que tener nombres como ValidateLogin (), ValdiateRegistrationForm () , ValdiateLoginRetrievePassword () y etc.

¿O llamar al Repositorio de todos modos y solo tener un nombre que suene raro?

Parece difícil crear un repositorio que tenga un nombre lo suficientemente general como para que pueda usarlo en muchos sitios de su aplicación y aún tenga sentido, y no creo que sea una buena práctica llamar a otro repositorio en un repositorio.

Respuestas a la pregunta(7)

Su respuesta a la pregunta