Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

EF Function Import erkennt keine von StoredProc zurückgegebenen Spalten

Nachdem ich wild gegoogelt hatte, stieß ich auf die Antwort:EF4 - Die ausgewählte gespeicherte Prozedur gibt keine Spalten zurück

EF kann keine Metadaten von einer gespeicherten Prozedur abrufen, die dynamische Abfragen oder temporäre Tabellen verwendet. Die Lösung bestand darin, entweder den komplexen zurückgegebenen Typ manuell zu erstellen ODER

einzufügen
SET FMTONLY OFF

in meiner gespeicherten Proc-Definition. Die Gefahr bei der zweiten Option besteht natürlich darin, dass die gespeicherte Prozedur ausgeführt wird, wenn Visual Studio den Metadatenaufruf ausführt, sodass dies idealerweise nur verwendet wird, wenn die gespeicherte Prozedur nichts ändert.

UPDATE:Eine Alternative besteht darin, sicherzustellen, dass die gespeicherte Prozedur tatsächlich funktioniert. Sie könnten auch eine gespeicherte Dummy-Prozedur erstellen, die die gewünschten Spalten zurückgibt, daran binden und dann die eigentliche Logik ausführen.