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
Mary-Kate OlsenOriginal
2025-01-03 10:25:41262Durchsuche

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

C#-Code:

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

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

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

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!

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