Ich bin sehr beeindruckt von den Ergebnissen von Dapper Micro ORM für stackoverflow.com. Ich überlege es mir für mein neues Projekt, aber ich habe ein Problem damit, dass mein Projekt manchmal eine gespeicherte Prozedur erfordert und ich viel im Web gesucht habe, aber nichts mit gespeicherter Prozedur gefunden habe. Gibt es also eine Möglichkeit, Dapper mit einer gespeicherten Prozedur arbeiten zu lassen?
Bitte lassen Sie mich wissen, ob es möglich ist, sonst muss ich es auf meine Weise erweitern.
.net
stored-procedures
orm
dapper
Jalpesh Vadgama
quelle
quelle
Antworten:
Im einfachen Fall können Sie Folgendes tun:
Wenn Sie etwas ausgefalleneres wollen, können Sie Folgendes tun:
Zusätzlich können Sie exec in einem Stapel verwenden, aber das ist klobiger.
quelle
cnn.Query<MyType>
wie kann ich den Wert des Ausgabeparameters des Prozesses erhalten?Ich denke, die Antwort hängt davon ab, welche Funktionen gespeicherter Prozeduren Sie verwenden müssen.
Gespeicherte Prozeduren, die eine Ergebnismenge zurückgeben, können mit ausgeführt werden
Query
. Gespeicherte Prozeduren, die keine Ergebnismenge zurückgeben, können mitExecute
- in beiden Fällen (mitEXEC <procname>
) als SQL-Befehl (plus erforderlichen Eingabeparametern) ausgeführt werden. Weitere Informationen finden Sie in der Dokumentation .Ab Revision 2d128ccdc9a2 scheint es keine native Unterstützung für
OUTPUT
Parameter zu geben. Sie können dies hinzufügen oder alternativ einen komplexerenQuery
Befehl erstellen, der TSQL-Variablen deklariert, die SP-ErfassungsparameterOUTPUT
in den lokalen Variablen ausführt und sie schließlich in einer Ergebnismenge zurückgibt:quelle
Hier ist der Code zum Abrufen der Wertrückgabe aus der Store-Prozedur
Gespeicherte Prozedur:
Code:
quelle
Gleich von oben, etwas detaillierter
Verwenden von .Net Core
Regler
Gespeicherte Prozedur (Eltern-Kind-Beziehung)
Referenzen für den Fall
quelle
Microsoft.EntityFrameworkCore
? Nur Dapper in DAL verwenden ?Mit mehrfacher Rückgabe und mehreren Parametern
quelle
quelle