我正在尝试调用具有一个输入参数和两个输出参数的存储过程。
作为一个脚本,我这样称呼它:
set @MaxPrice = 0.00;
set @MinPrice = 0.00;
set @BSku = '1011001403';
call GetSkuMinMaxPrice(@Sku,@MaxPrice, @MinPrice);
我拿回我的价格
这是我用 ef5 调用它的原因:
decimal? minPrice;
decimal? maxPrice;
var skuParameter = new MySqlParameter("?SKU", productToUpload.Sku)
{
Direction = ParameterDirection.Input
};
var maxPriceParameter = new MySqlParameter("?MaxPrice", SqlDbType.Decimal)
{
Direction = ParameterDirection.Output
};
var minPriceParameter = new MySqlParameter("?MinPrice", SqlDbType.Decimal)
{
Direction = ParameterDirection.Output
};
db.Database.ExecuteSqlCommand("call GetSkuMinMaxPrice(?SKU,?MaxPrice,?MinPrice)",
skuParameter,
maxPriceParameter,
minPriceParameter);
minPrice = minPriceParameter.Value as decimal?;
maxPrice = maxPriceParameter.Value as decimal?;
对我来说,这看起来不错,但我从 MySQL 服务器收到此错误消息:OUT or INOUT argument 2 for routine tng.GetSkuBaseMinMaxPrice is not a variable or NEW pseudo-variable in BEFORE trigger
.
那么,除了不使用 Entity Framework 之外,我还需要做什么才能完成这项工作?
到目前为止我的一些研究: