terça-feira, 17 de fevereiro de 2009

.NET Framework 3.5 - LINQ to SQL

LINQ to SQL é um componente do .NET Framework 3.5 que provê uma Infraestrutura em tempo de execução para gerenciar dados relacionais como [objetos].

Por exemplo, o objeto [nw], no código abaixo, é criado para representar o Banco de Dados [Northwind] que faz um "Select" na Tabela [Customers], retornando os registros da cidade de [Londres].


[Visual Basic]
' NorthwndDataContext herda de System.Data.Linq.DataContext.
Dim nw As New NorthwndDataContext("C:\SQL Server 2000 Sample Databases\northwnd.mdf")

Dim companyNameQuery = _
From cust In nw.Customers _
Where cust.City = "London" _
Select cust.CompanyName

For Each customer In companyNameQuery
Console.WriteLine(customer)
Next


[C#]
// NorthwndDataContext herda de System.Data.Linq.DataContext.
NorthwndDataContext nw = new NorthwndDataContext(@"C:\SQL Server 2000 Sample Databases\northwnd.mdf");

var companyNameQuery =
from cust in nw.Customers
where cust.City == "London"
select cust.CompanyName;

foreach (var customer in companyNameQuery)
{
Console.WriteLine(customer);
}


Adicionando [LINQ to SQL Data Classes] em um Projeto

Para trabalharmos de forma orientada a objetos com o LINQ to SQL, como o exemplo acima mostrou no uso da classe [NorthwndDataContext], o Visual Studio 2008 disponibiliza duas ferramentas de apoio para a geração da classes de dados:

- Object Relational Designer (http://msdn.microsoft.com/en-us/library/bb384429.aspx);

- SQLMetal (http://msdn.microsoft.com/pt-br/library/bb386987.aspx);

Com o O/R Designer, temos a disposição uma rica interface, dentro do Visual Studio 2008, para criarmos nossas classes de dados. Repare que existe um [Template] para isto no [VS 2008], chamado [LINQ to SQL Classes], quando se adiciona um item novo no projeto (.dbml).

Com o SQLMetal, fazemos o mesmo, só que fora do Visual Studio 2008, na linha de comando do DOS.

O seguinte exemplo gera a classe de dados (em Visual Basic) baseado no Banco de Dados Northwind:


sqlmetal /code:northwind.vb /language:vb "c:\northwnd.mdf" /sprocs /functions


P.S.: Note que nos exemplos trabalhamos com o Banco de Dados [Northwind] do Sql Server 2000. Ele ainda continua sendo um bom banco para testes (principalmente devido seu tamanho). Para usar este banco no Sql Server 2005, faça o seguinte:

1 - Efetue o download em: http://www.microsoft.com/downloads/details.aspx?familyid=06616212-0356-46a0-8da2-eebc53a68034&displaylang=en

2 - Execute o arquivo [SQL2000SampleDb.msi], e adicione (Attach) o banco [Northwnd.mdf], localizado em [C:\SQL Server 2000 Sample Databases].

________________________________
101 Visual Basic LINQ Samples! - http://msdn.microsoft.com/en-us/vbasic/bb688088.aspx

Nenhum comentário:

Postar um comentário

<< Ao enviar um comentário, favor clicar na opção [Enviar por e-mail comentários de acompanhamento para gtezini@gmail.com] >>