Heim > Backend-Entwicklung > C++ > Wie rufe ich mithilfe des Entity Framework Daten aus einer gespeicherten Prozedur ab, ohne einen leeren Datensatz zu erhalten?

Wie rufe ich mithilfe des Entity Framework Daten aus einer gespeicherten Prozedur ab, ohne einen leeren Datensatz zu erhalten?

Mary-Kate Olsen
Freigeben: 2025-01-03 10:25:41
Original
263 Leute haben es durchsucht

How to Retrieve Data from a Stored Procedure Using Entity Framework Without Getting an Empty Dataset?

Abrufen von Daten aus gespeicherten Prozeduren mit Entity Framework

Problem:
Entwickler haben Schwierigkeiten beim Abrufen von Daten aus einer gespeicherten Prozedur, wenn sie Entity Framework verwenden (EF), was zu einem leeren Datensatz (-1) anstelle des erwarteten führt Daten.

Gespeicherte Prozedur:

ALTER PROCEDURE dbo.SearchProducts
  @SearchTerm VARCHAR(max)
AS
BEGIN
  DECLARE @query VARCHAR(max)
  SET @query = 'SELECT * FROM dbo.Products WHERE Name LIKE ''%' + @SearchTerm + '%'''
  EXEC(@query)
END
Nach dem Login kopieren

C#-Code:

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

MyGridView.DataSource = result;
MyGridView.DataBind();
Nach dem Login kopieren

Lösung:
Um dieses Problem zu beheben, befolgen Sie diese Schritte Schritte:

  1. Gespeicherte Prozedur als Funktion importieren:

    • Rechtsklick auf den Arbeitsbereich Ihres Entitätsmodells und auswählen „Hinzufügen“ -> „Funktionsimport.“
    • Geben Sie den gewünschten Namen für die gespeicherte Prozedur ein (z. B. Search_Products) und wählen Sie die Prozedur aus der Dropdown-Liste aus.
    • Setzen Sie den Rückgabewert auf „Entities“ und Wählen Sie „Produkte“ als Entitätstyp.
  2. Aktualisieren Sie den Code Dahinter:

    • Ersetzen Sie den vorhandenen Code durch Folgendes:

      var db = new MyEntities();
      var TEST_SEARCH_TERM = "product";
      var result = db.Search_Products(TEST_SEARCH_TERM); // Search_Products is the name specified in the Function Import dialog
      
      MyGridView.DataSource = result;
      MyGridView.DataBind();
      Nach dem Login kopieren

Durch Importieren der gespeicherten Prozedur als Funktion kann Entity Framework die Daten ordnungsgemäß aus der gespeicherten Prozedur abrufen und zurückgeben.

Das obige ist der detaillierte Inhalt vonWie rufe ich mithilfe des Entity Framework Daten aus einer gespeicherten Prozedur ab, ohne einen leeren Datensatz zu erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage