Gebruik de volgende stappen om dit probleem op te lossen:
- U moet de opgeslagen procedure importeren als een functie. Klik met de rechtermuisknop op het werkruimtegebied van uw entiteitsmodel en kies
Add -> Function Import
. - Voer in het dialoogvenster Functie-import toevoegen de naam in waarnaar uw opgeslagen procedure moet verwijzen in uw model, bijvoorbeeld
Search_Products
, kies uw procedure uit de vervolgkeuzelijst en kies als retourwaarde van de procedureEntities
en kiesProducts
uit de vervolgkeuzelijst. -
Dan in de code erachter:
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();
De reden dat je -1
. krijgt voor resultaat is dat Entity Framework geen standaard waarden voor Stored Procedure Return kan ondersteunen. Ik denk dat ondersteuning van opgeslagen procedure-retourwaarden afhankelijk is van de versie van het Entity-framework. Entity Framework heeft ook geen uitgebreide ondersteuning voor opgeslagen procedures omdat het een ORM is en geen SQL-vervanging.