首页 > 解决方案 > 从 .NET DB 上下文调用 MySQL 存储过程会引发“只能存储 MySqlParameter 对象”

问题描述

我正在使用 .NET Core 5 DBContext 访问 MYSQL 存储过程以使用以下代码获取结果:

var param = new SqlParameter("@word", word);
            var result = _context.History.FromSqlRaw("EXEC GETHISTORY @word", param).ToList();
            if (result != null)
            {
                retval = (IEnumerable<HistoryDM>)result;
            }

然而它抛出了下面的异常,

MySql.Data.MySqlClient.MySqlException:“只能存储 MySqlParameter 对象”

那么,试图告诉我的错误是什么,我该如何解决?

标签: mysql.netdbcontext

解决方案


SqlParameter用于SqlClient,即SQL Server。你想要一个new MySqlParameter(连接、命令、参数和阅读器类型都是特定于提供者的)。或者更好:请求连接来创建参数,或者使用可以为您处理 ADO.NET 内部的工具。


推荐阅读