mysql - 从 .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 对象”
那么,试图告诉我的错误是什么,我该如何解决?
解决方案
SqlParameter
用于SqlClient,即SQL Server。你想要一个new MySqlParameter
(连接、命令、参数和阅读器类型都是特定于提供者的)。或者更好:请求连接来创建参数,或者使用可以为您处理 ADO.NET 内部的工具。
推荐阅读
- r - 读取 read_html 中的列表时 UseMethod("xml_find_all") 出现 rvest 错误
- python - 关于 (sender, instance, created, **kwargs) 参数。它是如何分配的
- python - 如何使用@property 装饰器为类的属性赋值?
- java - 错误 WELD-001303:范围类型 jakarta.enterprise.context.SessionScoped 没有活动上下文
- database - 如何获取已删除的 ID(主键)并为新用户重新生成?
- url - 将所有子域重定向到一个页面,但一次
- angular - 如何在选择选项中使用 NgFor
- c++ - 我无法初始化 C 类的 shared_ptr
- php - Wordpress多站点子目录主域数据库连接错误
- html - 如何为具有平行四边形背景的标题设置样式?