Get return-Wert aus der gespeicherten Prozedur mit ExecuteSqlCommand (mit Entity Framework)

Ich habe code, der wie folgt aussieht:

int retval = databaseContext.Database.ExecuteSqlCommand(command, sqlParameters.ToArray());

Wo databaseContext ist vom Typ System.Daten.Entität.DbContext

Möchte ich den Rückgabewert verwenden, um zu wissen, ob die gespeicherte Prozedur lief erfolgreich. Basierend auf die Dokumentation ExecuteSqlCommand sollte das Ergebnis der gespeicherten Prozedur.

Jedoch, Den Befehl gibt immer -1, retval, egal was ich einstelle die gespeicherte Prozedur zu tun. Ich habe versucht, die Rückkehr verschiedene ganze zahlen und sogar aufrufen RAISERROR-Anweisung in der gespeicherten Prozedur, aber der return-Wert ist konstant -1.

Hier sind zwei gespeicherte Prozeduren, die ich versucht, aber Sie beide -1 zurückgegeben und nicht geben keine Anzeichen, ob es erfolgreich oder nicht ausgeführt wurde:

CREATE PROCEDURE [dbo].[myproc]
AS
BEGIN
      RAISERROR ('You fail', -- Message text.
                       0, -- Severity - operation failed.
                       500-- State.
                       );
END
GO

CREATE PROCEDURE [dbo].[myproc]
AS
BEGIN
      RETURN 1
END
GO

Irgendeine Idee was mache ich hier falsch?

Mögliche Duplikate von Get return-Wert aus der gespeicherten Prozedur
Nein, das ist eine andere Frage. Diese Frage muss die Abfrage in einem bestimmten format, während die ExecuteSqlCommand Dokumentation scheint nicht zu verlangen, alle solche Sache
Wenn Sie möchten, dass der return-Wert, verwenden Sie diese Methode. ExecuteSqlCommand wird es nicht tun für Sie, es sei denn, irgend etwas SELECTs der Wert in einem ResultSet.
ah, ich sehe. Ich hatte gesehen, dass die Antwort, die Sie verlinkten, aber nicht verstanden hatte, den Unterschied. Wenn Sie möchten, posten Sie Ihren Kommentar als eine Antwort, ich werde es akzeptieren
Nicht wirklich Wert, die Entsendung eine Antwort für das Kommentar.

InformationsquelleAutor Zain Rizvi | 2015-11-17

Schreibe einen Kommentar