Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

L'importazione della funzione EF non riconosce le colonne restituite da StoredProc

Dopo aver cercato su Google furiosamente, mi sono imbattuto nella risposta:EF4 - La stored procedure selezionata non restituisce colonne

EF non può ottenere metadati da un processo archiviato che utilizza query dinamiche o tabelle temporanee. La soluzione era creare manualmente il tipo restituito complesso OPPURE inserire

SET FMTONLY OFF

nella mia definizione di processo memorizzata. Il pericolo con la seconda opzione, ovviamente, è che il processo memorizzato verrà eseguito quando Visual Studio esegue la chiamata ai metadati, quindi idealmente questo sarebbe usato solo se la procedura memorizzata non cambia nulla.

AGGIORNAMENTO:un'alternativa è assicurarsi che la procedura memorizzata funzioni effettivamente. Un'altra cosa che potresti fare è creare una stored procedure fittizia che restituisca le colonne desiderate, le colleghi ad essa e quindi esegua la logica vera e propria.