VB 2008 - Criando uma aplicação completa com LINQ To SQL - I
Este artigo mostra como criar uma aplicação completa no VB 2008 Express Edition usando o LINQ to SQL. Quando eu digo 'aplicação completa' estou querendo dizer que na aplicação foram implementadas as principais funcionalidades para manutenção de dados como : alterar, incluir, excluir e buscar registros na base de dados.
Para facilitar vou utilizar o banco de dados Northwind.mdf e usar a tabela Shippers cuja estrutura é mostrada a seguir:
Nota: Você pode fazer o download dos scripts SQL para gerar o banco de dados Northwind.mdf no sítio: http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en |
Como podemos ver a tabela Shippers possui os campos: ShipperID, CompanyName e Phone , sendo que o campo ShipperID é a chave primária do tipo Identity (auto-incremental). Desta forma você já tem o banco de dados e a tabela prontos para usar.
Nota: Nesta aplicação eu vou usar o texto na língua inglesa de forma que você se habitue com os termos técnicos básicos.
Meu objetivo é mostrar como incluir , alterar, excluir e consultar dados da tabela Shippers usando LINQ to SQL.
Eu vou usar stored procedures para interagir com o banco de dados , portanto teremos que criar as seguintes stored procedures:
Você vai precisar ter instalado o VB 2008 Express Edition. Se não tiver pegue aqui: Visual Basic 2008 Express Edition
Vamos começar criando um projeto
Abra o VB 2008 Express e crie um novo projeto no menu FIle->New Project do tipo Windows Forms Application com o nome VB_Linq1 (ou algo mais sugestivo);
A seguir vamos definir uma conexão com o banco de dados Northwind.mdf se a conexão ainda não existir no seu ambiente faça o seguinte:
1- No menu View , selecione DataBase Explorer e clique com o botão direito do mouse sobre o item Data Connections e selecione Add Connection...
2- Na janela Add Connection Clique no botão Browse e selecione o banco de dados Northwind.mdf a partir do local onde você o instalou e clique no botão Abrir;
Após realizar a conexão com o banco de dados Norhtwind, o mesmo deverá aparecer na janela DataBase Explorer. Localize o banco de dados Norhtwind e expanda os seus objetos. Selecione o objeto Stored Procedures e clique com o botão direito do mouse selecionando a opção Add New Stored Procedure.
Será aberto um editor onde vamos digitar o texto das nossas stored procedures. Como exemplo eu vou mostrar como criar a stored procedure AddShippers. Digite o código , conforme abaixo e clique no botão Save.
Nota:
A estrutura da Stored Procedure(SP) é a seguinte : 1- Cria a SP chamada AddShippers usando o comando CREATE PROCEDURE 3- Cria os parâmetros de entrada: CompanyName e Phone 4- Define a instrução SQL que será executada. No caso a inclusão de dados na tabela Shippers via INSERT INTO. |
Para criar as outras stored procedures repita o procedimento anterior. Veja a seguir o código referente a cada uma delas:
DeleteShippers | CREATE PROCEDURE DeleteShippers ( @ShipperID int ) AS DELETE FROM Shippers WHERE ShipperID = @ShipperID |
ListShippers | CREATE PROCEDURE ListShippers AS SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers GO |
SearchShippers | CREATE PROCEDURE SearchShippers ( @companyName nvarchar(40) ) AS Select * from Shippers WHERE CompanyName like @Companyname |
UpdateShippers | CREATE PROCEDURE UpdateShippers ( @ShipperID int, @CompanyName nvarchar(40), @Phone nvarchar(24) ) AS UPDATE dbo.Shippers SET [CompanyName] = @CompanyName, [Phone] = @Phone WHERE ShipperID = @ShipperID; |
Incluindo a referência ao LINQ To SQL
Para poder usar o LINQ To SQL usando o descritor visual temos que incluir uma referência no projeto, para isso usamos o template LINQ To SQL Classes;
No menu Project opção Add New Item selecione na janela Templates o template LINQ to SQL Classes alterando o nome para Shippers.dbml (você pode usar qualquer nome);
Neste momento será exibida a janela do Descritor Objeto Relacional. Expanda os objetos do banco de dados Northwind.mdf e selecione a tabela Shippers, arraste e solte-a na janela Object Relational Designer;
A seguir arraste e solte cada uma das stored procedures criadas para a janela do Object Relational Designer, no panel Methods (se ele não estiver visível clique com o botão direito sobre o descritor e selecione Show Methods Pane);
Vemos acima a classe Shipper e os métodos criados no descritor LINQ. Se espiarmos o descritor objeto Relacional iremos verificar que foi criado um objeto ShippersDataContext do tipo DataContext que contém as informações da conexão e do mapeamento entre o banco de dados e as classes de entidades criadas.
O DataContext é a fonte de todas as entidades mapeadas sobre a conexão do banco de dados e efetua o tratamento das alterações feitas para todas as entidades mantendo um cache de entidades que garantem que as entidades retornadas mais que uma vez são representadas usando a mesma instância de objetos.
Então já temos tudo pronto:
- O banco de dados Northwind.mdf
e a tabela Shippers;
- As stored procedures que irão realizar as operações de
acesso e manutenção dos dados;
- O Mapeamento Objeto Relacional usando LINQ To SQL
onde já temos todas entidades mapeadas;
O que esta faltando ???
Na segunda parte do artigo vou criar a camada de negócios contendo os métodos necessários a manutenção dos dados da aplicação.
Acompanhe : VB 2008 - Criando uma aplicação completa com LINQ To SQL - II
Até mais...
José Carlos Macoratti