Wie können Werte von einer dynamischen gespeicherten SQL-Prozedur an das Entity Framework zurückgegeben werden?

7

Ich habe eine Stored Procedure, die etwas dynamisches SQL ausführt. Ich möchte diese gespeicherte Prozedur in Entitätsframework 4 verwenden, aber wenn ich versuche, einen komplexen Typ zu erstellen, gibt die Prozedur keine Spalten zurück. Gibt es irgendeine Möglichkeit, dass ich es zwingen kann, meine Werte zurückzugeben und den Rahmen der Entität zu bekommen, um sie zu erhalten? Hier ist ein viel vereinfachtes Beispiel, was ich tun möchte:

%Vor%

Aber das funktioniert nicht. Bitte hilf mir. Grundsätzlich möchte ich eine Stored Procedure verwenden, um dynamisches SQL auszuführen und die Werte an das Entitätsframework zurückzugeben.

    
Vishal 02.07.2010, 15:11
quelle

7 Antworten

16

Vielleicht könnten Sie parametrisiertes SQL in Betracht ziehen, wenn Sie dynamische Abfragen ausführen müssen:

%Vor%     
Anon246 02.07.2010, 15:21
quelle
4

probiere das

aus %Vor%

Glaub mir. Das ist genug.

Oder Sie können einfach einen komplexen Typ basierend auf Ihrem Abfrageergebnis erstellen und dann die Sammlung des komplexen Typs als Abfrageergebnis verwenden.

    
Mohsen 13.08.2011 09:56
quelle
1

füge die folgende Zeile am Anfang deines SPs hinzu

%Vor%     
Nitin Sawant 25.09.2012 08:48
quelle
1

Versuchen Sie das folgende Skript, das funktioniert gut.

%Vor%     
RickyRam 21.05.2014 08:26
quelle
1

Nun, ich denke, das ist es, wonach Sie suchen:

%Vor%

Dies wird eine öffentliche partielle Klasse sp_calculatesalary_Result im Entity-Framework-basierten DAL generieren.

    
Opochitsky Dimitry 16.10.2016 17:43
quelle
0

hast du versucht, deinem letzten Select Alias ​​zu geben:

%Vor%     
Moose 02.07.2010 15:24
quelle
0

Nun, wenn EF nicht erkennen kann, was Ihre gespeicherte Prozedur zurückgeben muss, dann erstellen Sie Ihren komplexen Typ im Voraus. Sie können einen komplexen Typ erstellen, indem Sie mit der rechten Maustaste auf eine beliebige Stelle im Modell klicken und einen komplexen Typ hinzufügen. Weiter, wenn Sie Ihre gespeicherte Prozedur importieren, können Sie Ihren komplexen Typ aus dem Dropdown auswählen.

    
zeeshanhirani 06.07.2010 14:30
quelle