.NET

28 out, 2010

LINQ – usando e abusando do LINQPad 4 – Parte 01

Publicidade

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:

  1. Podemos também realizar consultas usando SQL e a linguagem ESQL;
  2. 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…

Referências: