You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ToList方法返回存储过程结果,解决代码运行CS1061报错问题

CS1061错误定位与解决

CS1061错误的核心原因是你调用ToList方法的目标对象所属类型,既没有定义ToList实例方法,也没有匹配的扩展方法支持,针对你当前的EF调用存储过程场景,可按以下步骤排查修复:

定位根因

  • 检查代码文件顶部是否引用了System.Linq命名空间:ToList是Linq提供的扩展方法,未引用该命名空间时,所有可枚举类型对象都无法调用该方法。
  • 确认EF上下文内all_Results的类型:EF默认不会把存储过程映射为DbSet<T>类型的属性,而是会映射为可执行的方法,你代码中把它当做属性直接访问,拿到的是方法组对象,自然没有ToList方法。

修复方案

1. 补全命名空间

先在代码文件顶部引入Linq命名空间:

using System.Linq;

如果引入后仍然报错,执行下一步。

2. 修正存储过程调用写法

存储过程映射后是需要执行的方法,调用时要加括号触发执行,返回的ObjectResult<T>类型原生支持ToList转换:

public List<all_Result> Get_Results()
{
    using (admissionEntities ad = new admissionEntities())
    {
        List<all_Result> Lall_Results = ad.all_Results().ToList();
        return Lall_Results;
    }
}

补充说明:新增using包裹上下文是EF操作的标准实践,可自动释放上下文资源,避免内存泄漏。如果你的存储过程需要传入参数,直接在all_Results()的括号内按顺序传入对应参数即可。

特殊情况处理

如果调整后仍然报错,你需要打开EDMX设计器,确认存储过程的返回类型是否已经配置为all_Result,如果没有自动生成对应返回类型,手动指定映射即可。

内容的提问来源于stack exchange,提问作者dante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:54:08