Utilizando System.Reflection e System.Attributes para a construção de uma Ferramenta ORM - Parte 9
Construção de uma ferramenta ORM tendo como base os recursos contidos nas Namespaces System.Reflection e System.Attributes entre outras etc.
Estamos chegando ao final do artigo. Nesta parte vamos iniciar nosso projeto de teste contruindo um pequeno Banco de Dados.
Agora vamos ver na prática como
utilizar a nossa classe DAL genérica. Construiremos um pequeno banco de dados
no SqlServer 2005 Express com algumas Stored Procedures e apenas uma tabela.
Contruiremos também um projeto do tipo Console Application com C# no Visual
Studio.
Nosso BD será composto por 1 tabela:
Ilustração 11
– Tabela Produto a ser criada
Para maior agilidade vamos deixar
aqui o script para a criação do banco e desta tabela:
CREATE DATABASE [TESTE];
USE [TESTE]
GO
/****** Object: Table [dbo].[PRODUTO] Script Date: 04/26/2011 16:22:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[PRODUTO](
[prod_id]
[int] IDENTITY(1,1) NOT NULL,
[prod_nome]
[varchar](50) COLLATE Latin1_General_CI_AS NULL,
[prod_url]
[varchar](50) COLLATE Latin1_General_CI_AS NULL,
[prod_desc]
[varchar](100) COLLATE Latin1_General_CI_AS NULL,
[prod_preco]
[decimal](8, 2) NULL,
[prod_img]
[varchar](250) COLLATE Latin1_General_CI_AS NULL,
[prod_img_byte]
[image] NULL,
CONSTRAINT [PK_PRODUTO] PRIMARY
KEY CLUSTERED
(
[prod_id] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON
[PRIMARY]
GO
SET ANSI_PADDING OFF
Com nosso BD criado vamos Criar as
SPs. Para exemplo vamos utilizar 5 SPs. Abaixo segue uma tabela com os nomes e
funções de cada procedure.
|
Nome
|
Função
|
|
spDELProd_D
|
Exclusão
|
|
spINSProd_I
|
Inserção
|
|
spSELProd_S
|
Seleção
sem filtro
|
|
spSELProd_SF
|
Seleção com filtro
|
|
spUPDProd_U
|
Alteração
|
Seguem os scripts:
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spDELProd_D]
(
@pProdId int
)
AS
DELETE dbo.Produto WHERE
prod_id = @pProdId
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spINSProd_I]
(
@outProdId int output,
@pProdNome varchar(50),
@pProdUrl
varchar(50),
@pProdDesc varchar(50),
@pProdPreco varchar(20),
@pProdImg
varchar(250),
@pProdImgByte
image
)
AS
INSERT INTO dbo.Produto
(
prod_nome,
prod_url,
prod_desc,
prod_preco,
prod_img,
prod_img_byte
)
VALUES
(
@pProdNome,
@pProdUrl,
@pProdDesc,
convert(decimal(8,2),@pProdPreco),
@pProdImg,
@pProdImgByte
);
Select @outProdId = MAX(prod_id) FROM dbo.Produto;
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spSELProd_S]
AS
SELECT
* FROM dbo.Produto
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spSELProd_SF]
(
@pProdId
int
)
AS
SELECT * FROM dbo.Produto where prod_id =
@pProdId
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spUPDProd_U]
(
@pProdId int,
@pProdNome
varchar(50),
@pProdUrl
varchar(50),
@pProdDesc varchar(50),
@pProdPreco varchar(20),
@pProdImg varchar(250),
@pProdImgByte
image
)
AS
UPDATE dbo.Produto SET
prod_nome
= @pProdNome,
prod_url
= @pProdUrl,
prod_desc
= @pProdDesc,
prod_preco
= convert(decimal(8,2),@pProdPreco),
prod_img
= @pProdImg,
prod_img_byte
= @pProdImgByte
WHERE prod_id = @pProdId
Pronto,
nosso BD está completo agora para o nosso projeto de exemplo. No proximo artigo contruiremos um projeto no Visual Studio para testarmos nossa ferramenta.
</wordtidy>
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo