2012-10-26 57 views
0

我有一個存儲過程,它採用int作爲參數。我使用實體框架代碼首先隨着MVC和我正在以這種方式調用將參數傳遞給存儲過程實體框架與SQL Server 2005

 SqlParameter sa = new SqlParameter("@userId", userId); 
     var query = from dashboardData in TBSCIDBContext.Database.SqlQuery<MyNomination>("sp_GetMyNominationList @userId", sa) 
        select dashboardData; 
     return query.ToList(); 

在探查我得到

exec sp_executesql N'sp_GetMyNominationList @userId',N'@userId int',@userId=4 

這正確執行上使用SQL Server 2008,但現在我的數據庫是更改爲2005 和相同的執行語句給我

「sp_GetMyNominationList」附近的語法不正確。因爲我在2005年

運行它,我不得不使用2005,請告訴我一個方法,使2005年此運行,使得參數由SQL事件探查器

回答

0

的回答我的問題是

SqlParameter sa = new SqlParameter("@userId", userId); 
      var query = from dashboardData in TBSCIDBContext.Database.SqlQuery<MyNomination>("exec sp_GetMyNominationList @[email protected]", sa) 
         select dashboardData; 

這工作

0

您應該使用的EntityFramework到map your stored procedures採取正確。目前,您只是繞過EF的全部要點,即在代碼和數據庫之間提供一個層。 EntityFramework將使用存儲過程名稱創建方法調用,該名稱採用存儲過程所需的參數。

相關問題