C# 使用参数和多结果集实体框架6调用存储过程

C# 使用参数和多结果集实体框架6调用存储过程,c#,sql-server,entity-framework,stored-procedures,asp.net-mvc-5,C#,Sql Server,Entity Framework,Stored Procedures,Asp.net Mvc 5,我有一个存储过程uspGetProductAndCategory,它接受一个参数@SupplierID并返回产品、类别和供应商[这些表来自NorthWindDatabase] 我的问题是,当我将此存储过程与.edmx集成时,它会在ContextEntityClass中生成一个方法uspGetProductAndCategory,返回类型为ObjectResult。但这种复杂类型只是第一个结果集 我读过很多关于如何在EF 6中调用多个结果集SP的主题,但还没有得到任何解决方案。如前所述,通过XML

我有一个存储过程uspGetProductAndCategory,它接受一个参数@SupplierID并返回产品、类别和供应商[这些表来自NorthWindDatabase]

我的问题是,当我将此存储过程与.edmx集成时,它会在ContextEntityClass中生成一个方法uspGetProductAndCategory,返回类型为ObjectResult。但这种复杂类型只是第一个结果集

我读过很多关于如何在EF 6中调用多个结果集SP的主题,但还没有得到任何解决方案。如前所述,通过XML编辑器更改函数导入和其他元素后,我将如何调用已经返回ObjectResult的函数uspGetProductAndCategory_Result

这是所有的屏幕截图

将存储过程导入ContextEntityClass后:

更改函数导入后的DbContext.edmx


一点建议。不要在EF中使用乘法结果集。就这样。也许是我太粗鲁了。但我为此花了很多时间。并简单地使用另一种SP调用方法。不是EF。我不想宣传这些方法,你们可以很容易地在互联网上找到它们


EF采用“代码优先”的方法,SP不适合这种概念。

EF不支持存储过程中的多个结果集。更改过程以返回单个结果集,或者如果无法执行此操作,则必须使用直接的原始ADO.NET来处理此存储过程及其返回的数据