C# 如何修复实体框架的存储过程定义为virtualint,我们通常定义为ObjectResult。我使用DB-first方法

C# 如何修复实体框架的存储过程定义为virtualint,我们通常定义为ObjectResult。我使用DB-first方法,c#,entity-framework,stored-procedures,C#,Entity Framework,Stored Procedures,我使用向导将存储过程导入到项目中,通常Entity Framework会自动生成存储过程的代码作为ObjectResult类型,但我现在导入的存储过程是Virtual int类型 如何修复它?因为,如果类型为virtualint,则无法获取要列出的数据 datagrid.datasource = db.SPP_SMTTRGT(param1, param2).ToList(); 抛出错误:“无法转换为列表”,这不起作用 我该怎么办 这是我的代码: public virtual int SPP_S

我使用向导将存储过程导入到项目中,通常Entity Framework会自动生成存储过程的代码作为
ObjectResult
类型,但我现在导入的存储过程是
Virtual int
类型

如何修复它?因为,如果类型为
virtualint
,则无法获取要列出的数据

datagrid.datasource = db.SPP_SMTTRGT(param1, param2).ToList();
抛出错误:“无法转换为列表”,这不起作用

我该怎么办

这是我的代码:

public virtual int SPP_SMTTRGT(string sP_LINE_CODE, string sP_PROD_DATE)
{
    var sP_LINE_CODEParameter = sP_LINE_CODE != null ?
    new ObjectParameter("SP_LINE_CODE", sP_LINE_CODE) :
    new ObjectParameter("SP_LINE_CODE", typeof(string));

    var sP_PROD_DATEParameter = sP_PROD_DATE != null ?
    new ObjectParameter("SP_PROD_DATE", sP_PROD_DATE) :
    new ObjectParameter("SP_PROD_DATE", typeof(string));

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SPP_SMTTRGT", sP_LINE_CODEParameter, sP_PROD_DATEParameter);
}

它不是一个虚拟的
int
,而是一个虚拟的方法。这意味着继承类可以根据需要重写它。“因为,如果类型为虚拟int,我无法获取要列出的数据。”请证明这一点,因为这在我调用SP时没有多大意义,有一个错误无法转换为列表先生。。我使用以下代码db.SPP_SMTTRGT(param1,param2).ToList();