0

我正在使用 MVC3 和实体框架在 SQL Server 2008 中调用存储过程。该过程没有参数,并且在探查器中,我将 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将SSDL(在您的 EDMX 中)中的值更改为 2005。您可能已将其设置为 2008。

于 2012-10-04T12:24:31.250 回答