2017-01-17 2 views
1

Ich bin neu bei Dapper.net, ich versuche, eine gespeicherte Prozedur mit Dapper.Net auszuführen.Convert gespeicherte Prozedur Ausgabe von dapper.net in Liste

Ich habe eine Modellklasse StoreProcedureResult, bezogen auf die Ausgabe der gespeicherten Prozedur.

public StoredProcedureResult 
{ 
    public string Name { get; set; } 
    public string Address { get; set; } 
    public string PhoneNumber { get; set; } 
} 

conn.Query(SP_name, Param(s), Type). 

Die Ausgabe des Modells wird dynamisch abgerufen.

Nach der Ausführung bekomme ich folgende

{{Dapper,Name='Pradeep',Address='UK',PhoneNumber='+4478923984'}} 
{{Dapper,Name='Jack',Address='USA',PhoneNumber='+447242344234}} 
{{Dapper,Name='Ram',Address='UK',PhoneNumber='+447892423484'}} 

Ich benötige die dynamische Ausgabe in List<StoredProcedureResult> Struktur zu konvertieren.

Nach wenigen Suche fand ich diesen Code

conn.Query<*Model_name*>(SP_name, Param(s), Type). 

Leider gibt diese die richtige Anzahl der Zeilen, aber die Zeilen sind leer. Wie kann ich die Ausgabe in eine List<StoredProcedureResult> konvertieren.

Dank

+0

Dies ist eine Frage über Dapper. entfernt die irrelevanten Tags Sql-Server und Stored-Procedure. –

+0

Erhalten Sie eine Ausgabe in Ihrem Prozeduraufruf? Es fühlt sich an, als ob das Problem darin besteht, dass keine Zeilen zurückgegeben werden. Andernfalls sollte das Erstellen einer Liste mit der Ausgabe kein Problem darstellen. – Veverke

+0

Ich habe den SP von SSMS ausgeführt, ich habe das Ergebnis daraus. Wenn ich den gleichen SP von Dapper ausführe, bekomme ich die oben erwähnte Ausgabe ({{Dapperrow ... in oben). Wenn ich jedoch versuche, ein Modell anstelle von dynamic hinzuzufügen, kann ich die Zeilen nicht erfassen und bewerten. Ich versuche SP-Ausgabe in List oder etwas ähnliches zu konvertieren. –

Antwort

2

Sie müssen den Rückgabetyp der Daten angeben, wenn Sie den Query aufrufen. Wo Sie haben < Modellname> ist, wo Sie die erwartete Rückgabetyp -. In Ihrem Beispiel sind Sie Daten immer wieder in dapper internen dynamischen dapperrow Typ

 // Gets results in dapper's DapperRow type. This is what you're getting now. 
     var results = _connection.Query("SP_name", commandType: CommandType.StoredProcedure); 

Das folgende Beispiel zeigt die Ergebnisse in Ihrer genannten Art Rückkehr, das ist das, was Sie eigentlich wollen.

 //Gets results in your type. Note we tell dapper we want it turned into StoredProcedureResults. 
     List<StoredProcedureResult> castResults; 
     castResults = _connection.Query<StoredProcedureResult>("SP_name", commandType: CommandType.StoredProcedure).ToList(); 
+0

Thansk G Davison. Es hat funktioniert und ich bin in der Lage, die Model-Ausgabe zu definieren. –

Verwandte Themen