Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Abrufen von Daten aus einer gespeicherten Prozedur mit Entity Framework

Verwenden Sie die folgenden Schritte, um dieses Problem zu lösen:

  1. Sie müssen die gespeicherte Prozedur als Funktion importieren. Klicken Sie mit der rechten Maustaste auf den Arbeitsbereich Ihres Entitätsmodells und wählen Sie Add -> Function Import .
  2. Geben Sie im Dialogfeld "Funktionsimport hinzufügen" den Namen ein, auf den Ihre gespeicherte Prozedur in Ihrem Modell verwiesen werden soll, beispielsweise Search_Products , wählen Sie Ihre Prozedur aus der Dropdown-Liste und wählen Sie den Rückgabewert der Prozedur als Entities und wählen Sie Products aus der Dropdown-Liste.
  3. Dann im Code dahinter:

    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();
    

Der Grund, warum Sie -1 erhalten Das Ergebnis ist, dass Entity Framework keine Rückgabewerte für gespeicherte Prozeduren standardmäßig unterstützen kann. Ich denke, die Unterstützung von Rückgabewerten gespeicherter Prozeduren hängt von der Version des Entity-Frameworks ab. Außerdem bietet Entity Framework keine umfangreiche Unterstützung für gespeicherte Prozeduren, da es sich um ein ORM und nicht um einen SQL-Ersatz handelt.