Neste artigo vamos fazer uma consulta de uma procedure utilizando o Entity Framework 4.0

Primeiramente vamos criar a estrutura do banco de dados.

Criando a estrutura do banco de dados.

Criando a tabela onde será consumindo os dados

create table tbPessoa

(id int primary key identity,

 Nome varchar(100) not null)

 

Populando a tabela

insert into tbPessoa values(''Fernando'')

insert into tbPessoa values(''Maria'')

insert into tbPessoa values(''Fred'')

 

Criando a procedure que será consultada

create proc PESSOA_SELECT_ALL

            @Nome as varchar(100)

AS

 

select ID, Nome from tbPessoa

where Nome like ''%'' + @Nome + ''%''

 

Agora vamos criar um projeto console application, conforme imagem abaixo.

Após criação do projeto iremos adicionar um arquivo edmx, para isso clique com o botão direito em cima da solução em depois Add>>New Item.

A imagem abaixo mostra a inclusão do arquivo edmx.


Após criação do projeto iremos adicionar um arquivo edmx, para isso clique com o botão direito em cima da solução em depois Add>>New Item.

A imagem abaixo mostra a inclusão do arquivo edmx.



Após a escolha do tipo do Data model que iremos utilizar, o próximo passo é a conexão com o banco de dados, e em seguida escolheremos qual objeto vamos trabalhar, que no nosso caso uma procedure




Veja o resultado na janela Model Browser



Para abrir a janela Model Browser, no arquivo edmx, clique com o botão direito e escolha a opção Model Browser, conforme imagem abaixo



Em cima da procedure vamos clicar com o botão direito e selecionar a opção Add Function Import



Após ter feito isso, a janela abaixo será aberta.

Nesta janela iremos selecionar o retorno da nossa procedure que será um tipo Complex, como ainda não possui nenhum tipo Complex, precisamos clicar no botão Get Column Information e em seguida no botão Create New Complex Type



Apos de criado o retorno Complex, podemos ver o resultado abaixo




Após ter feito isso o nosso modelo de dados já esta finalizado e pronto para o uso.

Na classe Program vamos adicionar o código abaixo.

//Instanciando o modelo de dados

using (dbCadastroEntities1 ctx = new dbCadastroEntities1())

{

    //Declarando uma variável nome para o meu critério

    //Poderia ser um campo de uma pagina por exemplo

    string Nome = "Maria";

 

    //O Retorno da minha procedure será uma lista do meu tipo complex,

    //que por sua vez é PESSOA_SELECT_ALL_Result

    List<PESSOA_SELECT_ALL_Result> pessoa;

 

    //chamando a procedure e jogando o retorno para a lista pessoa

    pessoa = ctx.PESSOA_SELECT_ALL(Nome).ToList();

 

    //lendo as pessoas e jogando na tela

    foreach (var item in pessoa)

    {

        Console.Write("ID: {0} Nome: {1}", item.ID, item.Nome);

    }

 

    Console.ReadKey();

}

 

Após ter feito isso o nosso programa esta pronto para ser finalizado.

Espero que tenha gostado e muito obrigado

http://www.nandosilva.com