无法从用法中推断出方法的类型参数

时间:2016-07-18 05:26:10

标签: c# asp.net-mvc stored-procedures

我是编程的新手,当我为特定函数编写代码时,我发现以下错误。请帮我解决这个错误。

public IList<ScoreCardListItemTO> UpdateDate(bool IsScoreCardUpdate, bool IsInputHeaderUpdate, long ScoreCardId,
    long ScoreCardSubmitResponseId, long QuestionId, DateTime UpdatedOn)
{
    var parameters = new[]
    {
        new ObjectParameter("IsScoreCardUpdate", IsScoreCardUpdate ),
        new ObjectParameter("IsInputHeaderUpdate", IsInputHeaderUpdate ),
        new ObjectParameter("ScoreCardId", ScoreCardId ),
        new ObjectParameter("ScoreCardSubmitResponseId", ScoreCardSubmitResponseId ),
        new ObjectParameter("QuestionId", QuestionId),
        new ObjectParameter("UpdatedOn", UpdatedOn),
    };

    ObjectResult items = ExecuteEqmFunction("SyncUpdateOnColumn", string.Empty );
    return items;
}

错误显示在此行

ObjectResult items = ExecuteEqmFunction("SyncUpdateOnColumn", string.Empty );
return items;

错误状态

  

错误42方法的类型参数   “EQM.DataLayer.EqmRepository.ExecuteEqmFunction(字符串,   string,params System.Data.Objects.ObjectParameter [])'不能   从用法推断。尝试明确指定类型参数。

2 个答案:

答案 0 :(得分:2)

就像它说的那样,ExecuteEqmFunction期待3或4个参数,其中你提供了前2个参数。

尝试

ObjectResult items = ExecuteEqmFunction("SyncUpdateOnColumn", string.Empty, parameters);

我缺乏背景信息,但我不知道为什么你不在那个范围内建立parameters,如果不提供它。

答案 1 :(得分:2)

正如我在编辑问题时在错误定义中发现的那样,因为它不可见

方法ExecuteEqmFunction<T>是通用的,需要类型T。通用方法仅从您传递的参数中推断出类型。由于您没有类型T的任何参数,因此需要明确指定该类型:

 ObjectResult items = ExecuteEqmFunction<ObjectResult>("SyncUpdateOnColumn", 
                                                                 string.Empty, parameters);

假设T是该方法的返回类型。