Query CQRS (C#)
Overview
Implementar queries de leitura otimizadas no padrão CQRS em C#. Foco em performance, projeções diretas para DTOs e independência do modelo de domínio para leitura.
Guidelines
- Separar Queries (Leitura) de Repositories (Escrita).
- Retornar DTOs de leitura específicos para a interface (UI/API).
- Usar ORMs leves (Dapper) ou EF Core com
.AsNoTracking()para máxima performance. - Implementar filtros e paginação diretamente na consulta.
- Nomear como
GetXxxQueryouFindXxxQuery.
Workflow
- Identificar os dados necessários para a tela/endpoint e o DTO de destino.
- Criar a interface de query (ex.:
IFindCustomerByIdQuery). - Implementar a query no layer de Infrastructure (usando Contexto DB ou Connection).
- Usar Projections para carregar apenas as colunas necessárias.
- Tratar cenários de "não encontrado" retornando
Result.Failureounullconforme o padrão do projeto.
References
- Consultar references/query-pattern-cs.md para exemplos e padrões detalhados.
- Consultar
../skills-standards.mdpara convenção global de nomenclatura (seção C#).
Global Standards
- Consultar
../skills-standards.mdpara padrões globais de nomenclatura e convenções gerais entre skills.