【发布时间】:2012-10-04 05:23:02
【问题描述】:
我正在使用 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 中使用这个存储过程
【问题讨论】:
-
旁注:您应该不为您的存储过程使用
sp_前缀。该前缀由 Microsoft 保留供自己使用 - 这会导致性能损失,并可能导致与 Microsoft 在未来版本中提供的存储过程发生冲突。
标签: sql-server-2008 entity-framework sql-server-2005 stored-procedures