Comment retourner une valeur à partir d'une procédure stockée à EF

Je suis d'essayer d'appeler une procédure stockée par EF et récupérer une valeur de retour de la procédure stockée. J'ai utilisé cette répondre en tant que guide. Voici ma procédure stockée:

CREATE PROCEDURE [dbo].[usp_test]
(
    @result int OUT
)
AS
BEGIN

--DO STUFF

SET @result = 0
END

Ici est de savoir comment je vais l'appeler à partir de EF:

var status = new SqlParameter
{
    ParameterName = "result",
    DbType = DbType.Int32,
    Direction = ParameterDirection.Output 
};
var result = context.Database.SqlQuery<int>("EXEC usp_test @result", status);
var wasSuccessful = result.First() == 1;
if (!wasSuccessful)
{
    //DO STUFF
}

Je reçois ce message d'erreur:

Le lecteur de données a plus d'un domaine. Plusieurs champs ne sont pas valides pour la GED primitive ou une énumération des types de

Ce que je fais mal?

Avez-vous fait une sélection dans votre procédure stockée? Si c'est votre type de retour. Comme un soupçon - vous devez utiliser le jeu de résultats avant que vous pouvez obtenir la valeur du paramètre de sortie.
L'ensemble de la procédure stockée est dans la question. J'ai aussi essayé SET @result = 0.
OK. --DO STUFF indiqué que vous faites quelque chose dans le corps et vous ne définissez pas la valeur du paramètre de sortie, c'est pourquoi je ne sais pas si c'est une procédure complète...
Désolé pour la confusion. Est ce que je fais maintenant (mis à jour) la façon dont vous définissez un paramètre de sortie dans la SP?
Je ne me souviens pas pour le moment mais il se pourrait que EF attend toujours un jeu de résultats. Pouvez-vous ajouter un mannequin SELECT 0 de votre procédure stockée et voir si cela fonctionne?

OriginalL'auteur im1dermike | 2016-02-12