繁体   English   中英

使用Entity Framework调用存储过程时出现问题:期望参数未提供

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM