GlobalRepository é um repositório "genérico" que substitui todos os repositórios do seu projeto, desta forma você só precisará usar um repositório único, o que significa manter um repositório. Com GlobalRepository você não precisa criar um novo repositório para cada Model e definir métodos! basta adicionar e usá-lo.
Observe :
Chamei-o de repositório GLOBAL e não de GENÉRICO porque o objetivo é usar um repositório para todos os modelos, ou seja: chame-o GLOBALMENTE no seu projeto, neste caso você evitará toneladas de código (claro que você está livre para alterá-lo e implementar é como um repositório GENÉRICO normal)
Os métodos retornam IQueryable, que oferece maior flexibilidade e permite consultas eficientes em oposição à filtragem na memória, etc., e pode reduzir a necessidade de criar vários métodos específicos de busca de dados. Por outro lado, agora você deu uma espingarda aos seus usuários. Eles podem fazer coisas que você pode não ter pretendido (usar excessivamente .include(), fazer consultas pesadas e filtrar na memória em suas respectivas implementações, etc.), o que basicamente evitaria as camadas e os controles comportamentais porque você deu acesso total. Portanto, antes de usar, leve em consideração a equipe, sua experiência, o tamanho do aplicativo, as camadas e a arquitetura geral...
Este repositório também contém: SmartDeletersService que verifica o banco de dados sempre que uma entidade é usada por outras entidades, os métodos retornam True se encontrarem isso, caso contrário, retornam False.
GlobalRepository funciona em qualquer lugar, basta baixar os arquivos, adicioná-los ao seu projeto e feliz uso :D
por favor lembre-se:
PS: para funcionar corretamente, seus Models devem estender BaseEntity, adicionei um arquivo para que você possa ver como é BaseEntity (para iniciantes)
Se precisar de algo, entre em contato comigo: [email protected]