Introdução ao LINQ

Logo .NET 3.5Hoje o assunto será bastante interessante, irei comentar um pouco sobre a nova tecnologia de acesso a dados da Microsoft chamada de LINQ (Language-INtegrated Query). Pretendo realizar uma série de posts sobre o tema, começando por está breve introdução.

Basicamente o LINQ é uma implementação de linguagem “SQL dinâmica” ou seja não é igual ao SQL tradicional voltado para Databases, e sim voltado para tratamento, mapeamento e manipulação de objetos através do código fonte utilizando toda a framework como base.

Para realizar toda esta “mágica” de manipulação o LINQ nada mais faz do que aquilo que nós sempre fizemos que é realizar o mapeamento objeto-relacional, mais de uma maneira muito mais simplificada, facilitando e auxiliando o desenvolvimento. Ele mapeia as entidades do banco para classes, cria métodos para StoreProcedures, realiza tratamento de concorrência (otimista) entre outras funcionalidades que abordarei em um post futuro. Através destes mapeamentos e da linguagem o LINQ gera comandos T-SQL (Transact SQL) tradicionais que todos nós estamos acostumados a lidar, existe até uma maneira de exibir os comandos SQL gerados pelo LINQ mais isto é assunto para mais adiante.

Nota: Atualmente ele só é compatível com a base de dados MS SQL Server pois esta aborda o padrão internacional ANSI (American National Standard Institute), já demais provedores de serviços de databases não suportam este padrão, caso estivessem de acordo com o ANSI o LINQ conseguiria manipular as informações corretamente. Mais segundo a equipe de desenvolvimento do LINQ, eles estão trabalhando junto aos fornecedores de banco de dados para que estes façam a implementação em seus produtos.

Como citado anteriormente LINQ é uma linguagem, e como tal, pode ser utilizada para manipulação de qualquer tipo de dados, para cada um ele possui um nome e metodologias um pouco diferentes.

A seguir estão as 5 formas que o LINQ pode assumir:

LINQ to SQL – Como o próprio nome já diz realiza o acesso à Bancos de Dados.
LINQ to XML – Para realizar manipulação de arquivos XML.
LINQ to Objects – Realiza manipulação em qualquer tipo de Objetos.
LINQ to DataSets – Conforme o próprio nome, manipula dados em DataSets.
LINQ to Entities – Capacidade de manipular Entidades completas.

Representação da arquitetura fundamental da linguagem LINQ:
Estrutura do LINQ

Bom espero que tenham gostado e se interessado pelo LINQ, em breve continuarei esta série de artigos sobre esta tecnologia que promete ser o futuro do acesso a dados no Framework .NET 3.5.

Dúvidas e curiosidades não deixem de postar um comentário que terei o maior prazer de responder.