0

SQL Server 2008 でストアド プロシージャを呼び出すために MVC3 と Entity Framework を使用しています。プロシージャにはパラメータがなく、プロファイラでは proc の実行を次のように取得します。

exec sp_executesql N'sp_GetDashSessionboardRoomTimeSlot', N'@p0 nvarchar(4000)', @p0=NULL

これは、C# コードで呼び出す方法です。

SqlParameter sa = null;
var query = from dashboardData in TBSCIDBContext.Database.SqlQuery<SessionDashboardData>("sp_GetDashSessionboardRoomTimeSlot", sa)
            select dashboardData;

これはうまくいきます。しかし、データベースを SQL Server 2005 に変更したので、それを使用する必要があります

したがって、同じ C# コードを使用して同じプロシージャを呼び出すと、プロファイラーは同じ exec ステートメントを返しますが、SQL でエラーが発生します

「sp_GetDashSessionboardRoomTimeSlot」付近の構文が正しくありません

このストアド プロシージャと SQL Server 2005 を使用する必要があるため、この問題を解決する方法を教えてください。

4

2 に答える 2

1

に変更しました

var query = from dashboardData in TBSCIDBContext.Database.SqlQuery("sp_GetDashSessionboardRoomTimeSlot") select dashboardData;

できます

于 2013-01-08T14:39:29.053 に答える
0

ProviderManifestToken(EDMX の) SSDL を 2005 に変更します。おそらく 2008 に設定されています。

于 2012-10-04T12:24:31.250 に答える