执行mysql存储过程
var affectedRows =
context.Database.ExecuteSqlCommand("exec UpdateStatus @p_customerId, @p_id",
new MySqlParameter("p_customerId", "006"),
new MySqlParameter("p_id", 9));
获取MySqlException
未处理的类型' MySql.Data.MySqlClient.MySqlException'发生在EntityFramework.dll
中其他信息:您的SQL语法有错误;校验 与您的MySQL服务器版本对应的手册 在exec UpdateStatus附近使用的语法 ' 006',9'在第1行
当我尝试用Update语句替换存储过程名时,它可以工作。但我想改为调用存储过程。
我尝试使用Entity Framework 5和6同样的错误
答案 0 :(得分:1)
从命令调用存储过程的MySQL语法是“CALL”。参数名称也应该在前面有“@”。
因此您需要更改代码,如下所示。
var affectedRows =
context.Database.ExecuteSqlCommand("CALL UpdateStatus (@p_customerId, @p_id)",
new MySqlParameter("@p_customerId", "006"),
new MySqlParameter("@p_id", 9));