Obtenir la valeur de retour de la procédure stockée à l'aide de ExecuteSqlCommand (à l'aide de Entity Framework)

J'ai un code qui ressemble à ceci:

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

Où databaseContext est de type System.Les données.De l'entité.DbContext

Je veux utiliser la valeur de retour pour savoir si oui ou non la procédure stockée a couru avec succès. Basé sur la documentation ExecuteSqlCommand doit retourner le résultat de la procédure stockée.

Toutefois, La commande renvoie toujours -1 à retval, peu importe ce que j'ai mis la procédure stockée à faire. J'ai essayé de retourner les différents nombres entiers et même l'appel de l'instruction RAISERROR dans la procédure stockée, mais la valeur de retour est toujours -1.

Voici deux stockées procs j'ai essayé, mais ils sont tous deux rentrés -1 et n'a donné aucune indication qu'il a exécuté avec succès ou pas:

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

Une idée de ce que je fais mal?

Double Possible de Obtenir la valeur de retour de la procédure stockée
non c'est un autre problème. Cette question exige que la requête soit dans un format particulier, tandis que le ExecuteSqlCommand la documentation ne semble pas exiger une telle chose
Si vous voulez que la valeur de retour, vous devez utiliser cette méthode. ExecuteSqlCommand de ne pas le faire pour vous, sauf peut-être quelque chose SELECTs la valeur dans un ensemble de résultats.
ah, je vois. J'avais vu cette réponse vous a lié, mais n'avait pas compris la différence. Si vous souhaitez poster un commentaire, comme réponse, je vais l'accepter
Pas vraiment la peine de poster une réponse à ce commentaire.

OriginalL'auteur Zain Rizvi | 2015-11-17