O Paulovich.Data é um framework para persistência de objetos .NET em banco de dados. A camada mais baixa da biblioteca, acessa o banco de dados e é responsável pelas seguintes tarefas:

  • Abertura e fechamento de conexões
  • Tratamento dos parâmetros
  • Controle de transações
  • Execução de consultas
  • Consumo de dados

Como podem ver, a classe acima não conhece os objetos que nós desejamos persistir. Ela apenas passa a informação para o banco de dados, seja executando um comando ou retornando dados. O conhecimento dessa classe é fundamental caso desejamos executar comando diretamente no banco de dados de forma transparente.

Logo acima, nós temos um conjunto de classes responsáveis por mapear os objetos .NET. Essas classes simplificam as classes persistêntes apenas em "Tabelas", "Campos" e "Relacionamentos", veja:

Nós podemos elencar as seguintes características dessa camada, são elas:

  • Mapear os objetos.
  • Mapear a estrutura das tabelas.
  • Mapear os relacionamentos entre as classes.

A esquerda nós temos os elementos que devem estar contidos na nossa classe persistente e à direita nós temos a classe-pai de todas os nossos objetos persistêntes. Vale lembrar, que o Paulovich.Data utiliza fortemente técnicas de Reflection principalmente para a leitura dos atributos de mapeamento. Ou seja, as classes à esquerda decoram as nossas classes persistêntes dizendo a classe persiste à que campo do banco nós estamos nos referindo.

A class Persist lê as propriedades via Reflection e consome o banco de dados usando a camada de acesso a dados e para realizar as operações é necessário que ela conhecça o dialeto usado pelo banco de dados e consiga gerar as queries apropriadas. Para dar suporte a isso o conjunto de classes abaixo nos tem auxiliado:

Podemos destacar as seguintes funcionalidades das classes acima:

  • Gerar os comandos SQL.
  • Administrar o dialeto usado.

Com base nas informações acima espero que você possa usar melhor o que o Paulovich.Data tem a oferecer. Vou tentar não sumir dessa vez, value pessoal.