Em meu artigo
.NET – Aprendendo a
sintaxe do LINQ com LINQPad, eu apresentei a
ferramenta
LINQPad
como uma opção para aprender a sintaxe da linguagem
LINQ.
Pois a ferramenta
evoluiu e está mais flexível e poderosa, e continua gratuita, valendo a pena ser
baixada para avaliação dos seus recursos.
Atualmente a
ferramenta apresenta duas versões:
For .NET Framework 4.0: Download LINQPad.exe Authenticode Signed v4.26.2 |
For .NET Framework 3.5: Download LINQPad.exe (right-click, Save As…) v2.26.2 |
Se preferir, pode visitar o site
http://www.linqpad.net/ e obter mais informações sobre os recursos
dessa fantástica ferramenta.
Neste artigo vou mostrar alguns de seus principais recursos.
Vou usar o LINQPad 4, que precisa do Net Framework 3.5 ou 4.0 instalado, ou
Visual Studio 2008 ou Visual Studio 2010.
Estou usando o SQL Server 2008 e o banco de dados
Northwind.mdf nos exemplos mostrados neste artigo.
Criando a conexão com o banco de dados
Existem duas maneiras de efetuarmos uma conexão:
- A conexão direta com o banco de dados;
- A conexão através do assembly (arquivo DLL) gerado que contém um
DataContext.
Vou começar com a conexão direta ao banco de dados Northwind.mdf.
Após baixar e instalar o LINQPad 4, abra a aplicação e clique no link Add
Connection.
Na próxima janela, clique em Next>, você verá a janela LINQPad Connection;
Observe as opções, marque o Provider SQL Server e informe o nome do seu
servidor. O meu servidor local é .\SQLEXPRESS.
Obs: Você pode usar os provedores para SQL CE 3.5 e
CE 4.0 (SQL Server Compact Edition) e para o protocolo, OData (Open Data
Protocol: um protocolo baseado em RESTfull que permite consultar e atualizar
dados).
Marque a opção “Specify new or existing database” e selecione o banco de dados
Nortwhind (que já deve estar instalado no seu SQL Server) e clique em OK.
Aceite as opções marcadas por padrão:
- Windows Authentication – o usuário autenticado no Windows
acessará a base de dados; - Pluralize EntitySet and Table Properties – coloca o nome das tabelas no
Plural; - Capitalize property names – coloca a primeira letra dos nomes dos
campos em caixa alta; - Include Stored Procedure and Functions – acrescenta as stored
procedures e functions.
Após isso, você verá a janela exibindo a conexão criada, as tabelas,
as stored procedures e as functions:
Agora estamos prontos para aplicarmos as consultas LINQ, quer seja para
estudo ou para análise de resultado, lembrando que temos as seguintes opções de
consultas para a linguagem C#, VB .NET e F# (a nova linguagem da plataforma
.NET):
C# Expression | from c in Categories select c; |
C# Statement(s) | var x = from c in Categories select c; x.Dump(); |
C# Program | void Main() { var categorias = from c in Categories select c; categorias.Dump(“Tabela Categorias”); } |
VB Expression | From c In Categories select c |
VB Statement | Dim x = From c In Categories select c x.Dump() |
VB Program | Private Sub Main() Dim x = From c In Categories select c x.Dump(“Tabela Categorias”) End Sub |
(Os exemplos em F# fogem ao escopo do artigo e merecem um tratamento
diferenciado)
Observações:
- Podemos também realizar consultas usando SQL e a linguagem ESQL;
- O método Dump()
é um método de extensão do LINQPad usado para
exibir o resultado das consultas.
O resultado para as consultas acima descritas será o mesmo e poderá ser
exibido nos seguintes formatos:
- formato padrão;
- Expressão Lambda;
- SQL;
- IL.
Além dos exemplos existentes no aplicativo, é possível encontrar exemplos
prontos e material para estudo e um tutorial sobre a linguagem F#.
Você pode também usar consultas LINQ em expressões sem conexão com um banco
de dados, quer para estudo ou para análise de resultado e de desempenho:
Feito isso, é só sentar e explorar a ferramenta usando os recursos do LINQ. No
exemplo abaixo, efetuamos uma consulta LINQ que retorna um tipo anônimo
usando o método First(), que
retorna a primeira ocorrência da lista. No exemplo, temos uma lista do
tipo anônima, pois foi feita a partir do operador new{}, que é a
declaração base para um tipo anônimo.
Aplicando filtros (agora estou usando a sintaxe do Visual Basic):
Realizando ordenações:
Realizando uma consulta em duas tabelas e detalhando a exibição dos produtos
de uma categoria selecionada:
Existem muitos recursos que eu não mostrei e que podem ser explorados, só
depende de você! Ao final do que foi exposto, só temos uma palavra para definir esta
ferramenta: SENSACIONAL!
No próximo artigo, mostrarei como usar o LINQPad 4 com o
Entity Framework.
Eu sei, é apenas LINQ,
mas eu gosto…