DEV Community

Discussion on: Patrón Repositorio (Repository Pattern) y Unidad de Trabajo (Unit Of Work) en ASP.NET Core WebApi 3.0

Collapse
 
wilsacup profile image
wilsacup

Muy bueno el aporte de Eduardo, me acaba de sacar de lios con este articulo, porque estaba realizando una implementacion de Patron de Repositorios, pero con una logic algo diferente ya que no utilizaba la clase UnitOdWork y se me estaba presentando problemas con algo llamadoHttpContext.GetOwinContext.Get.

Me gustaria realizar un pequeño aporte y es el siguiente: si lo que nos interesa es separar las capas del repositorio de la capa de aplicación (Controllers) me parece interesante poder agregar una capa de "Servicio" que me independice la lógica del negocio de la logica del controlador, de tal manera que se haga más facil el mantenimiento de la aplicación. por lo que yo agregaria una sección de Servicios, que se encargue de aplicar la lógica que se requiere para traer los datos requeridos al controlador, y que el controlador solamente se encargue de invocar el metodo del servicio que requiere (abstraccción)
Ejemplo
Metodo Get de AlbunessController solo invocaria el servicio
Service.ConsultaArtistaMayor(int anio)
y en la capa de servicio
crearía un método
public Task> ConsultaArtistaMayor(int anio) {
return await _genericRepository.GetAsync(a => 1.anio > anio, a =A a.OrderByDescending(b => b.anio),"Artista");
}