2016-05-31 72 views
0

我打電話從MVC 5應用程序的存儲過程與實體框架6.引發此錯誤:語法錯誤從EF MySQL的存儲過程調用6

You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'rv_test_param 1' at line 1

我的代碼是:

var res = Context.Database.SqlQuery<string>("rv_test_param @id", new MySqlParameter("@id", 1)).ToList(); 

存儲過程工作正常。如果我打電話停止不帶參數

像這樣:

var redf = Context.Database.SqlQuery<string>("rv_test").ToList(); 

它也能正常工作。任何人都知道爲什麼它不能使用參數嗎?

+0

難道這是權限問題嗎?不是EF,但使用ADO .NET時,我發現在運行應用程序時出現錯誤,抱怨參數,但sp本身運行良好。在我的情況下,他們是SQL權限相關的問題。 – NoSaidTheCompiler

+0

感謝您的建議@NoSaidTheCompiler,但這次的問題是錯誤的syntex。我通過改變我的呼叫syntex來實現它。檢查我的答案 –

回答

0

語法錯誤。我來自SQL Server的背景,所以我不知道這些語法。這對我很有用:

var res = Context.Database.SqlQuery<string>("call rv_test_param(@id)", new MySqlParameter("@id", 1)).ToList();