重载方法匹配...具有无效参数

时间:2017-03-17 12:57:36

标签: c# linq stored-procedures

 decimal dpmo = notMet + notMet * 100;    
 decimal ans = Summary_Matrics_Client.getall(dpmo);
  

这里我正在调用LINQ函数

public static decimal getall(ref decimal? number)
{
    var sigma = from p in db.getDPMO(ref number)
                select p.Sigma.Value;
    return sigma.SingleOrDefault();

}
  

getDPMO是存储过程,它是:

 ALTER PROCEDURE getDPMO

    (
    @number decimal OUTPUT
    )

AS
    select 
min(Sigma_Value) as Sigma 
    from 
Sigma_Table 
    where Defect_Rate < @number

    RETURN 
  

我收到错误:(ref?decimal)在调用getall()

时有无效参数

1 个答案:

答案 0 :(得分:1)

这是错误:

decimal ans = Summary_Matrics_Client.getall(dpmo);

您需要通过引用传递它,因为您在getall方法签名中定义了它将通过引用参数,因此您需要在调用中添加ref关键字:

decimal ans = Summary_Matrics_Client.getall(ref dpmo);

顺便说一下你实际上不需要通过引用传递它,没有必要,只是简单地说,虽然我可以在getall的实现中看到你再次经过引用可能是getDPMO期望带有ref关键字的参数的情况,即(通过引用引用):

public static decimal getall(decimal? number)

然后调用方将是你现在写的:

decimal ans = Summary_Matrics_Client.getall(dpmo);