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