是什么导致 EF Code First 和 SQL 2005 中出现“<存储过程名称> 附近的语法不正确”?

2023-12-24

我发现 System.Data.Entity.Database.SqlQuery 方法的示例似乎适用于 SQL 2008 R2,但似乎不适用于 SQL 2005。

此调用适用于 SQL 2008 R2:

var myEntities = dbContext.Database.SqlQuery<MyEntity>("GetDataFromMySp @EntityId = {0}", entityId);

但是,在 SQL 2005 中,此语句将引发 SqlException,并显示错误消息“'GetDataFromMySp' 附近的语法不正确”。


@Dan 自己找到的解决方案(由于代表而无法发布)

我发现这个问题的解决方案只是将关键字“EXEC”添加到查询中:

var myEntities = dbContext.Database.SqlQuery<MyEntity>("EXEC GetDataFromMySp @EntityId = {0}", entityId);

此解决方案解决了 SQL Server 2005 的问题,并且仍然适用于 SQL Server 2008 R2。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么导致 EF Code First 和 SQL 2005 中出现“<存储过程名称> 附近的语法不正确”? 的相关文章

随机推荐