El patrón de repositorio parece funcionar bien cuando se trabaja con un proyecto inicial con varias tablas principales grandes.¿Cuál es la mejor práctica para el patrón de repositorio - Repo por tabla?
Sin embargo, a medida que el proyecto crece parece un poco inflexible. Supongamos que tiene muchas tablas secundarias que cuelgan de la tabla principal, ¿necesita un repositorio para cada tabla?
E.g.
CustomerAddress registro tiene siguientes niño tablas:
-> Condado de
-> País
-> CustomerType
En la interfaz de usuario, 3 listas desplegables necesario mostrar, pero se pone un poco tedioso escribiendo un repositorio para cada una de las tablas anteriores que selecciona los datos para las listas desplegables.
¿Existe alguna forma mejor o más eficaz de hacer esto?
Como ejemplo digamos que tiene un repositorio principal de CustomerAddress que supongo que es el 'agregado de raíz' que hereda las operaciones principales de CRUD desde la interfaz de repositorio base.
Anteriormente he recortado la raíz agregada y voy directamente al contexto para este tipo de tablas.
p. Ej.
public Customer GetCustomerById(int id)
{
return Get(id);
}
public IEnumerable<Country> GetCountries()
{
return _ctx.DataContext.Countries.ToList();
}
etc ...
Pero a veces no se siente derecha, ya que los países que no son parte del cliente, pero me siento como que necesito para virar hacia algo sin tener que crea tropecientos de repositorios para cada tabla. Un repositorio por mesa definitivamente tampoco me parece correcto.
también. imho a 'Country' no se destruirá solo porque elimine una' CustomerAddress'. Creo que continuaría prosperando. No es un agregado infantil. – jgauffin
evitar repositorios con ORM;) http: // ayende.com/blog/3955/repository-is-the-new-singleton – fex