Die Beispiele für die System.Data.Entity.Database.SqlQuery-Methode, die ich gefunden habe, scheinen mit SQL 2008 R2 gut zu funktionieren, scheinen aber nicht mit SQL 2005 zu funktionieren.
Dieser Aufruf funktioniert mit SQL 2008 R2:
%Vor%In SQL 2005 wird diese Anweisung jedoch eine SqlException mit der Fehlermeldung "Inkorrekte Syntax in der Nähe von 'GetDataFromMySp'" auslösen.
Lösung von @Dan selbst gefunden (konnte wegen rep nicht posten)
Die Lösung, die ich für dieses Problem gefunden habe, war einfach, der Abfrage das Schlüsselwort "EXEC" hinzuzufügen:
%Vor%Diese Lösung hat das Problem mit SQL Server 2005 behoben und funktionierte weiterhin mit SQL Server 2008 R2.
Sie brauchen EXEC nur, wenn vor dem Aufruf von "GetDataFromMySp" im Batch irgendwelche Anweisungen stehen. Der Name einer gespeicherten Prozedur sollte in Ordnung sein.
Ich würde SQL Profiler ausführen, um zu sehen, was tatsächlich von EF gesendet wird.
Dinge wie "vorbereitete Anweisungen" geben zusätzliche Befehle als Teil des Stapels zusätzlich zu Ihrem Befehlstext aus.
Siehe hierzu: Ссылка
Tags und Links entity-framework sql-server-2005 stored-procedures ef-code-first code-first