Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

EF Function Import ne reconnaît pas les colonnes renvoyées par StoredProc

Après avoir cherché furieusement sur Google, je suis tombé sur la réponse :EF4 - La procédure stockée sélectionnée ne renvoie aucune colonne

EF ne peut pas obtenir de métadonnées à partir d'un proc stocké qui utilise des requêtes dynamiques ou des tables temporaires. La solution consistait soit à créer manuellement le type complexe renvoyé OU à mettre

SET FMTONLY OFF

dans ma définition de proc stockée. Le danger avec la deuxième option, bien sûr, est que la procédure stockée sera exécutée lorsque Visual Studio exécute l'appel de métadonnées, donc cela ne serait idéalement utilisé que si la procédure stockée ne change rien.

MISE À JOUR :une alternative consiste à s'assurer que la procédure stockée fonctionne réellement. Une autre chose que vous pouvez faire est de créer une procédure stockée factice qui renvoie les colonnes que vous voulez, de vous y lier, puis de faire la logique réelle.