Heim > Backend-Entwicklung > C++ > Wie kann ich mit Entity Framework in ASP.NET erfolgreich Daten aus einer gespeicherten Prozedur abrufen?

Wie kann ich mit Entity Framework in ASP.NET erfolgreich Daten aus einer gespeicherten Prozedur abrufen?

DDD
Freigeben: 2024-12-29 00:10:10
Original
470 Leute haben es durchsucht

How Can I Successfully Retrieve Data from a Stored Procedure Using Entity Framework in ASP.NET?

Verwenden von Entity Framework zum Abrufen von Daten aus einer gespeicherten Prozedur

Im Bereich der Webentwicklung besteht häufig die Notwendigkeit, Datensätze in Anwendungen zu füllen aus Datenquellen. Hier kommt Entity Framework ins Spiel und bietet eine objektorientierte Schnittstelle für die Interaktion mit Datenbanken. Beim Abrufen von Daten aus gespeicherten Prozeduren können jedoch bestimmte Herausforderungen auftreten.

Betrachten Sie die folgende gespeicherte Prozedur in SQL Server:

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

Bei einem Versuch, Daten daraus abzurufen Wenn Sie eine gespeicherte Prozedur mit Entity Framework 6.1.1 erstellen und ein GridView-Steuerelement füllen, kann der folgende C#-Code verwendet werden:

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

Allerdings auf Beim Ausführen des Codes in einer ASP.NET-Anwendung tritt eine Ausnahme auf, wobei die Ergebnisvariable -1 anstelle des gewünschten IEnumerable-Datensatzes zurückgibt. Um dieses Problem zu beheben und die Daten erfolgreich abzurufen, sollten die folgenden Schritte befolgt werden:

  1. Importieren Sie die gespeicherte Prozedur als Funktion:

    • Klicken Sie mit der rechten Maustaste auf den Arbeitsbereich Ihres Entitätsmodells und wählen Sie „Hinzufügen“ -> „Funktionsimport.“
  2. Funktionsimport konfigurieren:

    • Im Dialog „Funktionsimport hinzufügen“ geben Sie an einen Namen für die Funktion, z. B. „Search_Products“.
    • Wählen Sie die gespeicherte Prozedur „SearchProducts“ aus der Dropdown-Liste aus Liste.
    • Setzen Sie den Rückgabewert der Prozedur auf „Entitäten“ und wählen Sie „Produkte“ aus der Dropdown-Liste.
  3. Ändern der Code dahinter:

    • Ändern Sie den Code im angegebenen Snippet zu:
var db = new MyEntities();
var TEST_SEARCH_TERM = "product";
var result = db.Search_Products(TEST_SEARCH_TERM); // Replace "SearchProducts" with your chosen function name

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

Diese Methode behebt das Problem, indem sie die gespeicherte Prozedur als Funktion innerhalb des Entity Framework-Modells importiert, sodass sie mit dem Rückgabewert aufgerufen und ausgeführt werden kann wird auf einen IEnumerable-Datensatz festgelegt.

Es ist wichtig zu beachten, dass Entity Framework zwar einen praktischen Mechanismus für die Interaktion mit Datenbanken bietet, seine Unterstützung für gespeicherte Prozeduren jedoch begrenzt ist und dies auch der Fall ist Rückgabewerte gespeicherter Prozeduren können nicht nativ verarbeitet werden.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Entity Framework in ASP.NET erfolgreich Daten aus einer gespeicherten Prozedur abrufen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage