我发现的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一起使用。
关于sql-server-2005 - 是什么原因导致EF Code First和SQL 2005中的 "Incorrect syntax near <stored procedure name>"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403930/