$mermaidjs
Clean Architecture Demo
Loading...
Searching...
No Matches
TaskManagement.Infrastructure.Persistence.Repositories.TaskReadRepository Class Referencesealed

TaskReadRepository es el repositorio de lectura para consultas de tarea optimizadas. More...

Inheritance diagram for TaskManagement.Infrastructure.Persistence.Repositories.TaskReadRepository:
Collaboration diagram for TaskManagement.Infrastructure.Persistence.Repositories.TaskReadRepository:

Public Member Functions

 TaskReadRepository (IConfiguration configuration)
 
async Task< TaskDto?> GetByIdAsync (Guid id, CancellationToken cancellationToken=default)
 
async Task< PagedResult< TaskDto > > SearchAsync (TaskSearchRequest request, CancellationToken cancellationToken=default)
 

Detailed Description

TaskReadRepository es el repositorio de lectura para consultas de tarea optimizadas.

Rol en Clean Architecture:

  • Parte de la capa de Infraestructura
  • Implementa interfaz ITaskReadRepository -definida en Capa de Aplicación-
  • Acceso a datos optimizado: Proporciona consultas eficientes de solo lectura
  • Inversión de dependencia: La aplicación depende de interfaz, no de esta implementación

Patrón CQRS -Lado de Lectura-:

  • Separado del repositorio de escritura -TaskRepository-
  • Optimizado para rendimiento y escalabilidad de consultas
  • Puede usar diferentes tecnologías -Dapper, SQL sin procesar, modelos de lectura-
  • Devuelve DTOs en lugar de entidades del dominio

Beneficios del Repositorio de Lectura:

  • Optimización independiente del modelo de escritura
  • Puede usar SQL sin procesar o herramientas de consulta especializadas
  • Puede consultar vistas desnormalizadas o modelos de lectura materializados
  • Devuelve solo campos requeridos -proyección-
  • Soporta estrategias de caché optimizadas para lecturas

Beneficios de Separación:

  • El lado de escritura optimiza para consistencia y reglas de negocio
  • El lado de lectura optimiza para rendimiento de consulta y forma de datos
  • Puede escalar independientemente basado en patrones de lectura/escritura
  • Separa la optimización de lecturas del lado de escritura -patrón CQRS-

Implementación:

  • Utiliza interfaz ITaskReadRepository de Capa de Aplicación
  • Típicamente utiliza Dapper o Entity Framework con AsNoTracking
  • Devuelve IReadOnlyList< T > para operaciones de lectura
  • Maneja paginación para conjuntos de resultados grandes

Definition at line 59 of file TaskReadRepository.cs.

Constructor & Destructor Documentation

◆ TaskReadRepository()

TaskManagement.Infrastructure.Persistence.Repositories.TaskReadRepository.TaskReadRepository ( IConfiguration  configuration)

Definition at line 63 of file TaskReadRepository.cs.

Member Function Documentation

◆ GetByIdAsync()

async Task< TaskDto?> TaskManagement.Infrastructure.Persistence.Repositories.TaskReadRepository.GetByIdAsync ( Guid  id,
CancellationToken  cancellationToken = default 
)

◆ SearchAsync()

async Task< PagedResult< TaskDto > > TaskManagement.Infrastructure.Persistence.Repositories.TaskReadRepository.SearchAsync ( TaskSearchRequest  request,
CancellationToken  cancellationToken = default 
)

Definition at line 98 of file TaskReadRepository.cs.


The documentation for this class was generated from the following file: