Entity Framework 4: Die ausgewählte gespeicherte Prozedur gibt keine Spalten zurück

7

In meinem SP mische ich statisches SQL und dynamisches SQL:

%Vor%

Dann füge ich im dynamischen SQL das Ergebnis in diese Tabelle ein:

%Vor%

(Ich verwende print @TSQL , also bin ich sicher, dass die Abfrage in Ordnung ist)

%Vor%

Aber wenn ich versuche, SP in VS 2010 Ultimate zu importieren, sehe ich die Nachricht wie ich im Titel erwähnt habe. Was verursacht das? Für viele Male bin ich diesen Fehler aufgetreten, aber ich weiß immer noch nicht, was das verursacht

    
Tony 17.12.2010, 19:16
quelle

2 Antworten

30

Fügen Sie diese Zeile am Anfang Ihrer gespeicherten Prozedur hinzu:
SET FMTONLY OFF
Sie können dies nach dem Import entfernen.

Es ist in diesem Artikel erwähnt (eine Art langer Weg) und es hat funktioniert ich, obwohl ich für ADO.NET für die Zeiten zurückgekehrt bin, in denen ich mich stark auf Stored Procedures stütze. Beachten Sie, dass sich Ihr Entitätsmodell auflösen wird, wenn sich Ihre Spalten je nach dynamischem SQL ändern.

    
Aidan Black 26.01.2011, 03:07
quelle
1

Ich weiß nicht genau, was Ihr Rückgabetyp ist, aber wenn Sie eine endliche (und relativ kleine) Anzahl von Rückgabetypen haben, können Sie einen benutzerdefinierten Tabellentyp erstellen und diesen zurückgeben.

%Vor%

Dann in der Prozedur:

%Vor%

Jetzt sollte EF in der Lage sein, den zurückgegebenen Spaltentyp zu erkennen.

    
Mauricio Ramalho 13.11.2013 14:39
quelle