Heim >Backend-Entwicklung >C++ >Wie kann ich mit Entity Framework Daten aus einer gespeicherten Prozedur abrufen und eine GridView füllen?

Wie kann ich mit Entity Framework Daten aus einer gespeicherten Prozedur abrufen und eine GridView füllen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-29 18:14:10982Durchsuche

How Can I Retrieve Data from a Stored Procedure Using Entity Framework and Populate a GridView?

Zugriff auf Daten aus einer gespeicherten Prozedur mit Entity Framework

Dieser Artikel befasst sich mit der Herausforderung des Abrufens von Daten aus einer dynamischen gespeicherten SQL-Prozedur mit Entity Framework 6.1 .1. Das Ziel besteht darin, ein GridView-Steuerelement mit den abgerufenen Daten zu füllen.

Das Szenario umfasst eine gespeicherte Prozedur namens SearchProducts, die einen Suchbegriff als Parameter akzeptiert und eine Ergebnismenge basierend auf einer dynamischen SQL-Abfrage zurückgibt. Der C#-Code versucht, die gespeicherte Prozedur auszuführen und das Ergebnis an ein GridView-Steuerelement zu binden.

Das Problem

Wenn der Code ausgeführt wird, funktioniert die gespeicherte Prozedur im Der Datenbank-Explorer schlägt jedoch in der laufenden Anwendung fehl und gibt -1 anstelle eines IEnumerable DataSet zurück. Dies weist darauf hin, dass die Daten nicht erfolgreich abgerufen werden.

Die Lösung

Um dieses Problem zu lösen, ist es notwendig, die gespeicherte Prozedur als Funktion in die Entität zu importieren Modell. Hier sind die Schritte:

  1. Klicken Sie mit der rechten Maustaste auf den Arbeitsbereich des Entitätsmodells und wählen Sie Hinzufügen -> Funktionsimport.
  2. Im Dialogfeld „Funktionsimport hinzufügen“:

    • Geben Sie den Namen für die Funktion ein (z. B. Search_Products).
    • Wählen Sie die Prozedur SearchProducts aus der Dropdown-Liste.
    • Stellen Sie den Rückgabewert auf Entitäten ein und wählen Sie Produkte aus der Dropdown-Liste aus Liste.
  3. Aktualisieren Sie den C#-Code:

    • Verwenden Sie den Funktionsnamen (Search_Products) im Entity-Objekt, um die gespeicherte Prozedur auszuführen.
    • Binden Sie das Ergebnis an die GridView Steuerung.

Der überarbeitete Code:

var db = new MyEntities();
var TEST_SEARCH_TERM = "product";
var result = db.Search_Products(TEST_SEARCH_TERM);

MyGridView.DataSource = result;
MyGridView.DataBind();

Erklärung

Entity Framework bietet keine vollständige Unterstützung für gespeicherte Rückgabewerte der Prozedur. Durch das Importieren der gespeicherten Prozedur als Funktion kann sie als Entity Framework-Methode behandelt werden, die den Abruf von Daten verarbeiten kann.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Entity Framework Daten aus einer gespeicherten Prozedur abrufen und eine GridView füllen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn