首页 > 解决方案 > 如何修复我的实体框架存储过程已定义为虚拟 int,通常定义为 ObjectResult。我使用 DB-first 方法

问题描述

我已经使用向导将存储过程导入到项目中,通常实体框架已将存储过程的代码自动生成为ObjectResult类型,但我现在导入的存储过程作为Virtual int类型。

如何解决?因为,如果类型是virtual int,我无法列出要列出的数据。

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);
}

标签: c#entity-frameworkstored-procedures

解决方案


推荐阅读