![](/img/trans.png)
[英]Entity Framework calling stored procedure expects parameter which was not supplied
[英]Problems calling a stored procedure using Entity Framework: expects parameter not supplied
我有以下存储过程:
CREATEA PROCEDURE USP_U_Pricing
(
@ProductId int
)
AS
BEGIN
....
END
我像这样设置DbParameter:
var pProductId = dataProvider.GetParameter(); //This returns a DbParameter
pProductId.ParameterName = "@ProductId";
pProductId.Value = productId;
pProductId.DbType = DbType.Int32;
并调用以下过程:
this.Database.SqlQuery<TEntity>("USP_U_Pricing", parameters).ToList();
定价是SP名称和参数,其中一个数组仅包含pProduct对象。 在那里,我检查了一下。
执行此行后,出现以下异常:
过程或函数“ USP_U_Pricing”需要未提供的参数“ @ProductId”。
我一直在阅读并测试设置参数的不同方法,但是没有结果。 如果我设置两个参数,一个称为ProductId,另一个称为@ProductId,则会出现错误,指出参数名称应唯一。
你能帮我吗?
编辑:参数是一个包含参数信息的数组。 它被填充是因为我用此签名调用了一个方法:
ExecuteStoredProcedureList<TEntity>(string commandText, params object[] parameters)
传递pProductId作为参数:
dbContext.ExecuteStoredProcedureList<PricingInfo>(
"USP_U_Pricing",
pProductId);
你可以尝试一下。
this.Database.SqlQuery<TEntity>("EXEC USP_U_Pricing @ProductId", pProductID);
顺便说一句,在您的代码中,我看不到传递给SqlQuery的'parameters'参数的创建。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.