Usando Stored Procedures no Entity Framework 4.0

Para usarmos Stored Procedures no Entity Framework, precisamos primeiro gerar o EDMX. 

 

Depois, selecionamos a base de dados que queremos usar. 

 

O próximo passo é selecionar as Tabelas e as Stored Procedures necessárias. 

 

Finalizado esta etapa o arquivo EDMX é gerado. 

 

Se depois de gerado o EDMX tentarmos usar uma Stored Procedure não vamos conseguir. 

 

Para que isso seja possível, devemos seguir os seguintes passos:

Devemos ir até o EDMX e na janela Model Browser (menu View, Other Windows, Entity Data Model Browser).  

Como podemos notar, a pasta Function Imports  do EDMX está vazia. Já a pasta Stored Procedures da Store contém todas as Stored Procedures que selecionamos anteriormente. 

  

  

  

Existem duas formas para adicionarmos as Stored Procedures para a pasta Function Imports. A primeira delas é clicando com o botão direito em cima de Function Imports e depois em Add Function Import…

 

 

 

Uma nova janela (Add Function Import) é aberta para selecionarmos a Stored Procedure e configurá-la.

 

 

 

Feito isso, podemos usar a Stored Procedure sem problemas.

 

 

 

A segunda forma de adicionarmos uma Stored Procedure e clicarmos em cima da mesma com o botão direito do mouse e depois em Add Function Import…

 

 

Observe que nesse caso, o campo Function Import Name é automaticamente preenchido com o nome da Stored Procedure. Observe também que há um botão, Get Column Information que nos mostra quais colunas são retornadas quando a Stored Procedure é executada. Podemos observar ainda que é possível selecionar o retorno, são quatro opções:

  • None – Nenhum tipo de retorno.
  • Scalars – Retorna um tipo específico (Binary, Boolean, Int32, etc.).
  • Complex – Retorna um tipo complexo com propriedades que correspondem às colunas retornadas pela Stored Procedure (Esse tipo é automaticamente gerado quando clicamos no botão Create New Complex Type).
  • Entities – Retorna uma entidade.

No nosso caso, como a Stored Procedure retorna todos os campos, selecionamos EntitiesStudentGrade. 

 

 

 

Por fim, executamos a Stored Procedure.

 

 

Anúncios

Tags: ,

2 Respostas to “Usando Stored Procedures no Entity Framework 4.0”

  1. Diego Says:

    oi. Se o retorno da SP é Complex, possa mapear para uma outra classe fora do arquivo edmx?

    • julianoaece Says:

      Olá Diego,

      Pelo que eu sei não é possível mapear para uma classe fora do EDMX. Não sei se resolve para você, mas você pode criar uma “partial class”. Por exemplo, você cria um Complex Type chamado MyGrades, com isso você pode adicionar uma nova classe à tua aplicação:

      public partial class MyGrades
      {
           // propriedades e métodos
      }
      

      Você até pode alterar a classe gerada pelo EDMX no arquivo School.Designer.cs mas quando você atualizar o “Model” toda essa alteração será perdida.

      Att,

      JULIANO AÉCE

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: