|
quinta-feira, 29 de julho de 2010 |
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 MVP Profile
|
|
| Introdução ao LINQ to SQL |
|
Por: Ramon Durães [Entre em contato com o autor ]
|
|
| Especialista em desenvolvimento de software e Microsoft Most Valuable Professional (MVP) em Visual Studio Team System. Realiza treinamentos de .NET Framework em empresas, consultoria em arquitetura de software e implantação de Visual Studio Team System. Palestrante nos principais eventos da Microsoft no Brasil (Tech-Ed 2005, Tech-Ed 2006, Tech-Ed 2007, Tech-Ed 2008, Tech-ED 2009), Microsoft Innovation Days 2007 (Salvador, Brasília, Recife, Goiânia, Natal, Maringá), Microsoft Innovation Days 2009 (Salvador) , Campus Party Brasil 2009 e eventos regionais relacionados a grupos de usuários e universidades. Conhecido autor de artigos para os principais portais de conteúdo e autor de 10 publicações eletrônicas em CD (Video-Aula) pela editora Linha de Código além dos livros "Desenvolvendo para web usando o Visual Studio 2008" e "Gerenciando projetos de software usando Visual Studio Team System" pela editora Brasport. Pode ser encontrado em seu blog http://www.ramonduraes.net e @ramonduraes no Twitter. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Feed de artigos.
Feed de artigos deste autor.
Gere seu feed personalizado
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Introdução ao LINQ to SQL |
|
| Publicado em: 24/09/2007 |
|
|
|
|
Artigo
recomendado para Visual Studio 2008 - SQL Server 2005/2008
A utilização de padrões baseados em
orientação a objetos, tornou-se um dos requerimentos em qualquer aplicação
atual. Já possuímos pleno domínio do mundo OOP (Object Oriented
Programming). Então chegou o momento de vencermos mais um desafio que é a
barreira existente entre dados e objetos. Nosso primeiro passo será portar toda
essa experiência adquirida para fechamos o elo faltante que é a integração
com base de dados, arquivos XML e objetos. A partir desse momento, estamos dando
um grande salto na evolução de todos os conceitos atuais e iniciado de vez na
linha do O/R Mapping (Mapeamento Objeto Relacional) e na exploração plena e
orientação aos objetos no desenvolvimento de software. O .NET recebeu algumas
extensões para permitir amplo suporte ao novo modelo de manipulação de objetos
que ganhou o nome de LINQ (Language Integrated Query) conforme figura
01.
 Figura 01 - Introdução ao LINQ
As mais
diversas consultas de dados serão encapsuladas pelo mecanismo do LINQ expondo
apenas objetos, tornando transparente se você usa um banco de dados, um xml ou
outra fonte de dados qualquer.
.NET Framework
3.5
Para permitir o suporte a linguagem integrada de consulta,
foi incorporado ao .NET algumas novas funcionalidades de forma a suportar o LINQ
(Linguagem Integrada de Consulta). Dentre as novas funcionalidades, podemos
citar: Tipos
anônimos, expressões lambdas e extensões de métodos, além da query de consulta.
O/R
Mapping
O modelo de mapeamento objeto relacional para banco de
dados SQLServer, consiste no mapeamento das tabelas do banco de dados como
classes, campos como propriedades, procedures e funções como métodos de forma
que você tenha no designer de classe da aplicação um conjunto de classes que
representam visão 1:1 do seu banco de dados. Acompanhe na figura
02 a tabela 'Products' do banco de dados e na figura 03
a representação da mesma já mapeada como a classe 'Product' conforme
figura 03. Uma vez feito o mapeamento pelo simples processo de
arrastar a tabela do banco para dentro do designer de classes, os
desenvolvedores do projeto já podem usar o LINQ para manipular os objetos
criados a partir das classes mapeadas.
 Figura 02 - Tabela 'Products' do banco de
dados
 Figura 03 - Classe mapeada 'Product'
Após
estabelecer o mapeamento, os benefícios são imediatos pois, a classe mapeada é
igual a qualquer outra do .net. Então você de imediato, já vai ter acesso pelo
Intellisense do Visual Studio sem precisar conhecer nomes de campos no banco de
dados que agora aparecem para você como propriedades. Outro ganho, é sobre as
consultas do LINQ que mostrarei logo a seguir. Como todo acesso será por meio
das mesmas, você só vai escrever código .NET que além do Intellisense já
comentado será validado contra erros de digitação pelo compilador.
Para
melhor entender esse novo cenário, vamos retornar ao acesso tradicional usando
ADO.NET para recuperar as informações do nosso banco de dados conforme
Listagem 1.
Listagem 01 - Consulta usando ADO.NET.
Agora que
você já relembrou o acesso tradicional, confira na listagem 02
e na figura 04 o novo modelo de consulta utilizando o
LINQ.
Listagem
02 - Consulta usando LINQ.
 Figura 04 - Digitando consulta para coleção de
produtos.
Você deve ter tido duas reações. Primeiro viu a diferença na
qualidade de linhas de código para fazer a operação e não tenho dúvidas
que você já está curioso para aprofundar os estudos no LINQ to SQL. Em
segundo, deve estar estranhando a forma de construção desse código e aí que
entra o .NET 3.5. Declaramos um objeto anônimo chamado de consulta e depois seu
tipo com o resultado da query expression na coleção Products. Ao fazermos essa
consulta, o LINQ vai converter essa solicitação em um código T-SQL e vai buscar
no banco de dados as linhas referentes aos objetos solicitados. Ao receber a
resposta do banco de dados, ele vai retornar uma coleção de objetos que
armazenaremos no objeto consulta. O resto foi somente popular essa coleção no
gridview. Você pode conferir o exemplo do código T-SQL gerado pelo LINQ na
listagem 03. Uma característica importante que vale ressaltar
nesse momento, é que o objeto consulta mesmo sem ser inicializado com um
tipo especifico, ele é fortemente tipado, sendo que logo após a definição do seu
tipo, ele não pode ser modificado.
Listagem 03 - Código T-SQL
gerado pelo LINQ.
Conforme você observou na figura 04,
com o LINQ seu acesso a dados será simplificado e o conhecimento da base de
dados será o uso da sua linguagem de programação no dia a dia usando o próprio
Intellisense sem precisar conhecer todos os nomes do
banco de dados. Um comentário interessante ainda sobre essa questão, é o código
'where' na figura 04 e o código T-SQL gerado no banco de dados
conforme listagem 03, onde você observa que um código .net é
convertido para código T-SQL pelo LINQ.
Para saber mais: LINQ
TO SQL para iniciantes
Até próximo artigo Sucesso em seus
projetos.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conheça os produtos do autor Ramon Durães
» : CD de Treinamento Gerenciando banco de dados usando Visual Studio Team System (entrega via download - 144 Mb) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento ASP.NET para Iniciantes - Visual Studio 2008 (entrega via download - 471 Mb) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento Gerenciando projetos de software com Visual Studio Team System (entrega via download - 365 Mb) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento sobre LINQ to SQL para iniciantes com Visual Studio .Net 2008 (entrega via download - 242 Mb) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento Introdução a banco de dados com SQL Server 2005 Express (entrega via download - 151 Mb) Por: R$ 53,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento sobre ADO.NET para Iniciantes (entrega via download - 126 Mb) Por: R$ 53,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento Introdução a .NET com C# - Visual Studio 2005 (entrega via download - 225 Mb) Por: R$ 43,00 (COMPRAR AGORA) Entrega: imediata
| » : CD ASP.NET 2.0 - Atualização Rápida (Visual Studio .NET 2005) (entrega via download - 188 Mb) Por: R$ 39,00 (COMPRAR AGORA) Entrega: imediata
| » : CD - Treinamento de ASP.NET 2.0 AJAX Extensions (entrega via download - 79,4 Mb) Por: R$ 39,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de treinamento: Qualidade de Software com Visual Studio Team System (entrega via download - 69,90 MB) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » Livro: Desenvolvendo para web usando o Visual Studio 2008 De: R$ 73,00 Por: R$ 60,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Explorando banco de dados usando .NET II (3 CDs) De: R$ 219,00 Por: R$ 188,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Explorando banco de dados usando .NET I (2 CDs) De: R$ 146,00 Por: R$ 132,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Desenvolvedor Web Kit III (4 CDs) De: R$ 292,00 Por: R$ 236,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Desenvolvedor Web Kit II (3 CDs) De: R$ 219,00 Por: R$ 188,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Desenvolvedor Web Kit I (2 CDs) De: R$ 146,00 Por: R$ 132,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento Gerenciando banco de dados usando Visual Studio Team System Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento ASP.NET para Iniciantes - Visual Studio 2008 Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento Gerenciando projetos de software com Visual Studio Team System Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento sobre LINQ to SQL para iniciantes com Visual Studio .Net 2008 Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento Introdução a banco de dados com SQL Server 2005 Express De: R$ 73,00 Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento sobre ADO.NET para Iniciantes De: R$ 73,00 Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento Introdução a .NET com C# - Visual Studio 2005 De: R$ 73,00 Por: R$ 59,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD ASP.NET 2.0 - Atualização Rápida (Visual Studio .NET 2005) De: R$ 73,00 Por: R$ 59,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD - Treinamento de ASP.NET 2.0 AJAX Extensions De: R$ 73,00 Por: R$ 59,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de treinamento: Qualidade de Software com Visual Studio Team System Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
|
|
|
|
|
|
|
|
|
|
|
|
| Inclua um comentário sobre o artigo |
Topo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | | | | | | | | Uma otima opção, mais de longe resolve de fato o problema o mapeamento objeto relacional. Somente vamos resolver esse problema quando o banco for O.O.
Mapear um banco relacional para O.O não é simplesmente transformar campos em propriedades. Isso já tinhamos com o DataTable.
Abandonar a utilização de Store Procedures usando LINQ do lado da aplicação como fica o desempenho?
Utilizar o banco de dados somente como um repositorio bobo e usar tudo O.O sem utilizar nenhuma regra de negocios do lado do banco é surreal. Uma constrait já seria uma regra de negocio.
Se estudar material sobre Sql Server onde fornece diversas facilidades, clr do lado do banco, novas comandos SQL, ferramentas para BI e etc. E depois estudar o material de .Net Linq e etc , dá um nó pois cada um mostra vantagens fantasticas mas não dois juntos. Tem um grande GAP nisso o que acho preocupante.
Usar LINQ e depois fazer um BI nessa base "boba" onde esta tudo na camada de negócio com O.O sera desafiante...
| |
| | | | | | | | | Quem enviou: Renato Mattos | | Postado em: 30/3/2009 0:00:00 |
| | | | | | | | | |
|
|
|
| Outros artigos do autor |
Topo |
|
|
|
|
|
|
| Artigos relacionados |
Topo |
|
|
|
|
|
|
| Produtos relacionados |
Topo |
|
|
|
|
|
|
|
|
Nossos números |
|
|
|
|
|
|
|
Dicas: 1.314
Códigos/scripts: 279
Funções de VBScript : 90
Funções JScript : 05
Livros: 1.805
Notícias: 2.488
Artigos: 2.972
Cases: 14
Oportunidades: 4.546
|
|
|
|
|
|
|
|
|
| | |