Linq to SQL – Parte 2

17 09 2008

Bom galera dando continuidade ao post de semana passada sobre linq to sql, como prometido irei falar nesse post sobre como utilizar Joins, Stored Procedures e Views com o linq.

Então Let´s go :D!!!

Bom para começar iremos criar nosso .dbml com as tabelas que iremos utilizar, irei usar o mesmo modelo do post anterior.

img_06

Executando joins entre tabelas

No exemplo de código abaixo estou realizando um join entre a tabela “Customer” e “CustomerProduct”, e exibindo para cada cliente a quantidade de produtos que o mesmo possui através de um “group by”. Perceba que posso atribuir o nome que desejar para o campo Nome do cliente e Quantidade de produtos apenas setando um alias para cada campo.

image1

Trabalhando com Views

Para trabalhar com Views no linq é muito simples basta arrastar a view do seu banco de dados para seu .dbml. Sua view será criada como uma tabela dentro de seu .dbml (ver figura 1) e então você poderá listar seu restulado, fazer filtros, ordenar etc, como se fosse uma tabela de seu banco (ver figura 2).

image2
Figura 1

image3
Figura 2

Trabalhando com Stored Procedures

Para executar Stored Procedures de seu banco de dados é bem semelhante a trabalhar com Views, primeiro precisamos arrastar nossa proc para nosso .dbml (ver figura 1) como foi feito anteriormente com nossa view. Porém ao contrário da view a proc não é exibida como uma tabela em nosso .dbml e sim na janela “Methods Pane” ao lado. Feito isso já podemos utilizar nossa proc em nosso código como mostrado no exemplo abaixo (ver figura 2).

image4
Figura 1

image5
Figura 2

Repare que no construtor da chamada da proc estamos passando o paramêtro que a mesma recebe que é o “ProductID”. Com isso ela nós retorna o resultado para seu tipo de dados então podemos trabalhar com os mesmos da maneira que quisermos.

Bom nós vimos nesse post como é simples e rápido trabalhar com Stored Procedures, Views e Joins utilizando o Linq to SQL.

Para quem quiser aprender e praticar mais como construir queries com o linq existe um programa freeware chamado LINQPad que te auxilia na criação de queries. É um ótimo programa para praticar e aprender a montar queries simples e complexas com o linq. Segue o link abaixo do site para download do software.

http://www.linqpad.net/

Até a próxima :D!!

Anúncios




Linq to SQL – Parte 1

10 09 2008

Olá pessoal primeiramente deixem apresentar-me sou Analista/Programador já a uns 4, 5 anos e neste tempo na aréa venho trabalhando com plataforma Microsoft focado em ambiente Web, principalmente. Venho desenvolvendo aplicativos em .NET desde a versão 1.1 que hoje, felizmente, já está na versão 3.5. E muita coisa já mudou desde então!!! 😀

Bom vou começar a postar uma série com as experiências do meu dia-a-dia e coisas novas que estão sendo lançadas no mercado de desenvolvimento que envolve a plataforma .NET. Para abrir essa série aqui no Code Samurai vou começar abordando o tema “Linq to SQL”. Atualmente na empresa onde trabalho, estou desenvolvendo aplicativos para intranet/extranet utilizando Linq to SQL para fazer o acesso a dados.

Para começar vamos falar um pouco sobre o que é o Linq to SQL. É uma implementação de O/RM(Object Relational Mapping) que permite que você mapeie os objetos de um banco de dados relacional para classes do .NET. Você pode então pode executar consultas usando LINQ e também executar comandos de update/insert/delete através dele.
Linq to SQL também suporta transactions, views e stored procedures.

A primeira coisa a se fazer quando utilizamos o Linq to SQL é criar um modelo de dados através de um arquivo .dbml.

Após criar seu arquivo .dbml basta você arrastar as tabelas do seu banco de dados que o Visual Studio 2008 já cria os relacionamentos necessários entre os objetos.

Feito isso, já podemos trabalhar com as tabelas dentro de nosso projeto como classes do .NET

1 – Consultando o banco de dados

A quey abaixo usa o Linq para retornar um IEnumerable de Products baseado no CustomerID. Repare que o VS2008 já cria um nome padrão para a classe que representa o Banco de Dados colocando junto ao nome de seu .dbml a palavara “DataContext”, assim em nosso exemplo o nome da Classe que faz referência ao Banco de Dados chama-se “MyDBDataContext”.

2 – Inserindo dados na tabela Product e CustomerProduct
O códido abaixo mostra como inserir um novo produto na tabela Product e vincular o mesmo a um Customer.

3 – Atualizando dados na tabela Product

O código abaixo mostra com alterar a descrição de um produto na tabela Product baseado no ProductID

4 – Deletando dados da tabela Product

O código abaixo mostra como deletar um produto da tabela Product e CustomerProduct baseado no ProductID e CustomerID

Bom pessoal nesse primeiro post sobre Linq to SQL, quis dar uma introdução de como podemos fazer tarefas simples com o Linq como acessar, inserir, atualizar e deletar dados de nosso banco. Nós próximos artigos aborei outros temas como utilizar Joins, StoredProcedures e Views.

Até a próxima 😀