Posts Tagged ‘framework 4’

Usando Stored Procedures no Entity Framework 4.0

abril 18, 2010

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.