Se você ainda não o conhece, o LINQ to DB é uma biblioteca de acesso ao banco de dados LINQ que oferece uma camada simples, leve, rápida e de tipo seguro entre seus objetos POCO e seu banco de dados.
Arquitetonicamente, está um passo acima de micro-ORMs como Dapper, Massive ou PetaPoco, pois você trabalha com expressões LINQ, não com strings mágicas, enquanto mantém uma fina camada de abstração entre seu código e o banco de dados. Suas consultas são verificadas pelo compilador C# e permitem fácil refatoração. LINQ to DB é um software gratuito e de código aberto.
O LINQ to DB
Características do LINQ to DB:
- API de consulta avançada:
- Sintaxe de junção explícita (além da sintaxe de junção LINQ padrão). LINQ To DB oferece suporte a todos os tipos de junção SQL padrão: INNER, LEFT, FULL, RIGHT, CROSS JOIN.
- Suporte CTE – permite reutilizar a mesma parte SQML em consultas complexas e processamento de tabelas recursivas.
- Cópia/inserção em massa – pega dados e opções de operação e, em seguida, executa inserções e retorna o status da operação.
- Funções de janela/analíticas – as funções de janela são implementadas como métodos de extensão para propriedades estáticas Sql.Ext.
- API de mesclagem que contém quatro grupos de métodos:
- Métodos Merge, MergeInto, Using, UsingTarget para configurar a origem e o destino do comando de mesclagem.
- Ativado, métodos OnTargetKey para configurar a condição de correspondência do comando de mesclagem.
- InsertWhenNotMatched*, UpdateWhenMatched*, DeleteWhenMatched*, UpdateWhenNotMatchedBySource*, DeleteWhenNotMatchedBySource*, UpdateWhenMatched*ThenDelete métodos para adicionar operações ao comando de mesclagem
- Métodos Merge e MergeAsync para executar comandos no banco de dados
- Capacidade de mapear SQL personalizado para funções estáticas.
LINQ
O LINQ é o nome de um conjunto de tecnologias com base na integração de recursos de consulta diretamente na linguagem C#. Tradicionalmente, consultas feitas em dados são expressas como cadeias de caracteres simples sem verificação de tipo no tempo de compilação ou suporte a IntelliSense. Além disso, você precisará aprender uma linguagem de consulta diferente para cada tipo de fonte de dados: bancos de dados SQL, documentos XML, vários serviços Web etc. Com o LINQ, uma consulta é um constructo de linguagem de primeira classe, como classes, métodos, eventos.
Para um desenvolvedor que escreve consultas, a parte mais visível “integrada à linguagem” do LINQ é a expressão de consulta. As expressões de consulta são uma sintaxe declarativa de consulta. Usando a sintaxe de consulta, você pode executar operações de filtragem, ordenação e agrupamento em fontes de dados com o mínimo de código. Você pode usar os mesmos padrões de expressão de consulta básica para consultar e transformar dados em bancos de dados SQL, conjuntos de dados do ADO.NET, documentos XML e fluxos e coleções .NET.