Utilizzare i seguenti passaggi per risolvere questo problema:
- È necessario importare la procedura memorizzata come funzione. Fai clic con il pulsante destro del mouse sull'area di lavoro del tuo modello di entità e scegli
Add -> Function Import
. - Nella finestra di dialogo Aggiungi importazione funzione, inserisci il nome a cui vuoi fare riferimento alla procedura memorizzata nel tuo modello, ad esempio
Search_Products
, scegli la tua procedura dall'elenco a discesa e scegli il valore di ritorno della procedura daEntities
e scegliProducts
dall'elenco a discesa. -
Quindi nel codice dietro:
var db = new MyEntities(); var TEST_SEARCH_TERM = "product"; var result = db.Search_Products(TEST_SEARCH_TERM);//Search_Products is the name that you specified in Function Import dialog MyGridView.DataSource = result; MyGridView.DataBind();
Il motivo per cui ottieni -1
per il risultato è che Entity Framework non può supportare i valori di stored procedure restituiti immediatamente. Penso che il supporto dei valori restituiti dalla procedura memorizzata dipenda dalla versione di Entity Framework. Inoltre, Entity Framework non ha il supporto per la stored procedure avanzata perché è un ORM, non una sostituzione SQL.