K vyřešení tohoto problému použijte následující kroky:
- Musíte importovat uloženou proceduru jako funkci. Klikněte pravým tlačítkem na oblast pracovního prostoru vašeho modelu entity a zvolte
Add -> Function Import
. - V dialogovém okně Add Function Import zadejte název, který chcete, aby se na vaši uloženou proceduru odkazovalo ve vašem modelu, například
Search_Products
, vyberte svou proceduru z rozevíracího seznamu a zvolte návratovou hodnotu procedury naEntities
a vyberteProducts
z rozevíracího seznamu. -
Pak v kódu za:
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();
Důvod, proč jste dostali -1
výsledkem je, že Entity Framework nemůže po vybalení podporovat hodnoty Stored Procedure Return. Myslím, že podpora návratových hodnot uložené procedury závisí na verzi Entity framework. Entity Framework také nemá bohatou podporu uložených procedur, protože jde o ORM, nikoli o náhradu SQL.