Estoy usando el patrón de repositorio donde tengo una clase de repositorio por tabla de base de datos. Me preguntaba cómo ustedes se acercan a las consultas que sólo tienen que devolver un número específico de columnasPatrón de repositorio y tipos de devolución
Por ejemplo decir que tienen la siguiente
Tabla de artículos (tabla ficticia)
ItemId
Name
PurchaseDate
Description
Price
En mi código: creo un objeto con los campos anteriores llamados Item.cs (actualmente no usa un orm).
Si tengo varios escenarios en los que necesito para volver
- ItemId
- Una combinación de purchaseDate y Nombre
- ItemId y precio
que sería el mejor enfoque?
- Obtener todos los campos de la tabla de artículos y devolver un objeto Artículo (consulta 1 repo)
- crear tres consultas en Repo y devolver un objeto del artículo para cada una
- Cree tres consultas en Repo y devolver sólo ¿Qué se necesita?
Ahora imagina este escenario con una tabla con más de 10 campos.
Personalmente, me gusta la opción uno, pero no estoy seguro de si hay una mejor manera de hacerlo.
Solo para ver si estoy en la misma página. Para consultas más específicas como (GetPersonByID), devuelve el registro de persona completo del Repo y luego, en la capa de servicio, elimina toda la información innecesaria y devuelve solo la ID. Podría mostrar un ejemplo de esto, porque esto es con lo que estoy teniendo dificultades. No estoy seguro de si debería crear mucho método Repo o simplemente tener uno que siempre devuelva todas las columnas de la tabla (es decir, toda la fila) – chobo
Hice lo mejor que pude de memoria ... No tengo mi IDE frente a mí así que probablemente haya algunos errores en el ejemplo anterior. Espero que entiendas la imagen. –
Me gusta esa técnica porque reduce el número de métodos en los repositorios. Pero, siempre me enseñaron que solo debe devolver las columnas que necesita de una base de datos, parece que con un Repositorio siempre está devolviendo un tipo de entidad o colección de entidades. ¿Es ésa la intención del patrón Repositorio? Tal vez estoy pensando que el impacto en el rendimiento de la base de datos – chobo