EF6存储过程-输出方向参数
EF6 stored procedure - output direction parameter
运行 带有输出方向参数的 EF6 存储过程的正确方法是什么?
List<MySqlParameter> parms = new()
{
new MySqlParameter { ParameterName = "@FilterJson", Value = JsonConvert.SerializeObject(input) },
new MySqlParameter { ParameterName = "@OutputJson", Direction = System.Data.ParameterDirection.Output }
};
var response = ReportingDetail.FromSqlRaw(
@"CALL p_detail_get(@FilterJson, @OutputJson)",
parms.ToArray()
);
此代码引发错误:
MySqlConnector.MySqlException: 'Only ParameterDirection.Input is supported when CommandType is Text (parameter name: @OutputJson)'
预期输出为 JSON,类似于:
{"rows_count": 7, "actual_page": 1, "pages_count": 1}
问题不在于连接,其他没有输出方向的程序也能正常工作。定义一种类型的 @OutputJson 并不能解决问题 - MySqlDbType = MySqlDbType.JSON
或 DbType = System.Data.DbType.Object
.
感谢您的帮助
根据 MySqlConnector disscussion,无法通过它 return 输出方向参数。您可以尝试编写 ADO.NET 代码来忽略此限制。
运行 带有输出方向参数的 EF6 存储过程的正确方法是什么?
List<MySqlParameter> parms = new()
{
new MySqlParameter { ParameterName = "@FilterJson", Value = JsonConvert.SerializeObject(input) },
new MySqlParameter { ParameterName = "@OutputJson", Direction = System.Data.ParameterDirection.Output }
};
var response = ReportingDetail.FromSqlRaw(
@"CALL p_detail_get(@FilterJson, @OutputJson)",
parms.ToArray()
);
此代码引发错误:
MySqlConnector.MySqlException: 'Only ParameterDirection.Input is supported when CommandType is Text (parameter name: @OutputJson)'
预期输出为 JSON,类似于:
{"rows_count": 7, "actual_page": 1, "pages_count": 1}
问题不在于连接,其他没有输出方向的程序也能正常工作。定义一种类型的 @OutputJson 并不能解决问题 - MySqlDbType = MySqlDbType.JSON
或 DbType = System.Data.DbType.Object
.
感谢您的帮助
根据 MySqlConnector disscussion,无法通过它 return 输出方向参数。您可以尝试编写 ADO.NET 代码来忽略此限制。