J'essaie d'obtenir la valeur de retour d'une procédure stockée. Voici un exemple de procédure aussi stockée:
select Name, IsEnabled from dbo.something where ID = @ID if @@rowcount = 0 return 1 return
5 Réponses :
non. L'entité framework n'a pas de support de procédure stockée riche car son orje, pas un remplacement SQL. P>
Comme vous l'avez déjà découvert, si vous devez utiliser des fonctionnalités moins courantes (plus avancées?) des procédures stockées, vous devrez utiliser de bons anciens façons. p>
Pour ajouter à ceci: @@ RowCount retournera une valeur scalaire, ou à ce sujet, tout SELECT @Value retournera une valeur scalaire. Si vous avez déjà un ensemble de résultats, cela ajoutera un nouveau jeu de résultats. Actuellement, 4.0 ne prend pas en charge plusieurs ensembles de résultats, mais le cadre 4.5 avec EF prend en charge plusieurs ensembles de résultats.
Pour que l'intéressé aboutit à EF, vous devez retourner une même structure (pas 1 et nom, iSeNabled) Dans cette requête, vous devez revenir '', 0 par exemple au lieu de 1 dans la condition IF:
select Name, IsEnabled from dbo.something where ID = @ID if @@rowcount = 0 return '',0
Cela a-t-il quelque chose à voir avec la question?
J'ai pu obtenir la valeur de retour (ainsi que les paramètres de sortie et d'entrée) avec l'entité Framework 5 (mais je pense que cela fonctionne de la version 4.x) en utilisant la première approche du code. De votre message, je ne vois pas quelle version de EF vous utilisez et comment vous faites votre cartographie; Si vous envisagez d'utiliser le code - première approche ici, vous pouvez trouver mon message avec la solution: p>
Je suppose que la prise en charge de la procédure stockée Les valeurs de retour dépend de la version du cadre d'entité. Bien que la valeur renvoyée directement ne fonctionnait pas pour moi, j'ai réussi à obtenir de la valeur à l'aide du paramètre de procédure stockée de sortie. Exemple: Ceci est code de test: p> et ceci est sortie: p> Comme vous le voyez de la valeur renvoyée directement de la valeur de sortie des ordures mais des paramètres de sortie fonctionne! p> Cet article fournit des informations générales sur deux manières de renvoyer des valeurs de SP P> J'espère que cela aide P> P>
Vous devez utiliser le "contexte.database.sqlquery" et spécifier le type de sortie de la procédure stockée
L'entité framework est une orje et n'est pas destinée à remplacer complètement tous les appels de la base de données de votre application.
Je peux obtenir la valeur de retour si j'appelle SQL manuellement, ou même si j'exécute un SQLCOMMAND en utilisant le framework d'entité i> - c'est votre réponse.
@Lamak - Whoops Mon erreur, je l'ai vue sous 50% et j'ai supposé le pire.