sql >> Database >  >> RDS >> Sqlserver

EF Function Import herkent geen kolommen die worden geretourneerd door StoredProc

Na furieus googelen, kwam ik het antwoord tegen:EF4 - De geselecteerde opgeslagen procedure retourneert geen kolommen

EF kan geen metagegevens krijgen van een opgeslagen proces dat dynamische query's of tijdelijke tabellen gebruikt. De oplossing was om ofwel handmatig het complexe geretourneerde type te maken OF zet

SET FMTONLY OFF

in mijn opgeslagen proc-definitie. Het gevaar bij de tweede optie is natuurlijk dat de opgeslagen procedure wordt uitgevoerd wanneer Visual Studio de metadata-aanroep uitvoert, dus dit zou idealiter alleen worden gebruikt als de opgeslagen procedure niets verandert.

UPDATE:Een alternatief is ervoor te zorgen dat de opgeslagen procedure ook echt werkt. Een ander ding dat u zou kunnen doen, is een dummy opgeslagen procedure maken die de gewenste kolommen retourneert, eraan binden en vervolgens de eigenlijke logica uitvoeren.




  1. MySQL Server is verdwenen bij het importeren van een groot sql-bestand

  2. Een tabel hernoemen in SQL

  3. SQL:werk een rij bij en retourneer een kolomwaarde met 1 query

  4. SQL SELECT-instructie expressiewaarde hergebruik voor andere expressie