Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

EF Function Import não reconhece colunas retornadas por StoredProc


Depois de pesquisar furiosamente, encontrei a resposta:EF4 - O procedimento armazenado selecionado não retorna colunas

O EF não pode obter metadados de um proc armazenado que usa consultas dinâmicas ou tabelas temporárias. A solução foi criar manualmente o tipo retornado complexo OU colocar
SET FMTONLY OFF

na minha definição de proc armazenado. O perigo com a segunda opção, é claro, é que o proc armazenado será executado quando o Visual Studio executar a chamada de metadados, então isso seria idealmente usado apenas se o procedimento armazenado não mudar nada.

ATUALIZAÇÃO:Uma alternativa é certificar-se de que o procedimento armazenado realmente funciona. Outra coisa que você pode fazer é criar um procedimento armazenado fictício que retorne as colunas desejadas, vincule-o e faça a lógica real.