C# 如何将多个select查询从存储过程返回到实体?

C# 如何将多个select查询从存储过程返回到实体?,c#,entity-framework,stored-procedures,C#,Entity Framework,Stored Procedures,我在应用程序中使用实体模型(数据库中的EF设计器)。我的存储过程有2个select查询。在阅读了这么多的文章之后,我发现我必须手动更改实体模型的复杂类型(以实现我想要的。或者有其他方法吗?)。我已经更改了它,但是当我访问时,我只得到第一个select查询的结果集。如何获得这两个查询的结果集 例如:这是我的存储过程 ALTER proc [dbo].[Win_Test_Multiple_Result_Set_Entity] as begin select court_type,court_nam

我在应用程序中使用实体模型(数据库中的EF设计器)。我的存储过程有2个select查询。在阅读了这么多的文章之后,我发现我必须手动更改实体模型的复杂类型(以实现我想要的。或者有其他方法吗?)。我已经更改了它,但是当我访问时,我只得到第一个select查询的结果集。如何获得这两个查询的结果集

例如:这是我的存储过程

ALTER proc [dbo].[Win_Test_Multiple_Result_Set_Entity]
as
begin 
select court_type,court_name from mst_courttype
select code,name from mst_bincom
end
这是我修改过的函数导入和复杂类型:

<FunctionImport Name="Win_Test_Multiple_Result_Set_Entity" >
            <ReturnType Type="Collection(vb_sql_rtcModel.Win_Test_Multiple_Result_Set_Entity_Result)"></ReturnType>
            <ReturnType Type="Collection(vb_sql_rtcModel.Win_Test_Multiple_Result_Set_Entity_Topic)"></ReturnType>
          </FunctionImport> 


<ComplexType Name="Win_Test_Multiple_Result_Set_Entity_Result">
          <Property Type="Byte" Name="court_type" Nullable="false" />
          <Property Type="String" Name="court_name" Nullable="false" MaxLength="50" />
        </ComplexType>
        <ComplexType Name="Win_Test_Multiple_Result_Set_Entity_Topic">
          <Property Type="Byte" Name="code" Nullable="false" />
          <Property Type="String" Name="name" Nullable="false" MaxLength="50" />
        </ComplexType>

这是我的函数导入映射:

<FunctionImportMapping FunctionImportName="Win_Test_Multiple_Result_Set_Entity" FunctionName="vb_sql_rtcModel.Store.Win_Test_Multiple_Result_Set_Entity">
            <ResultMapping>
              <ComplexTypeMapping TypeName="vb_sql_rtcModel.Win_Test_Multiple_Result_Set_Entity_Result">
                <ScalarProperty Name="court_type" ColumnName="court_type" />
                <ScalarProperty Name="court_name" ColumnName="court_name" />
              </ComplexTypeMapping>              
            </ResultMapping>
            <ResultMapping>
              <ComplexTypeMapping TypeName="vb_sql_rtcModel.Win_Test_Multiple_Result_Set_Entity_Topic">
                <ScalarProperty Name="code" ColumnName="court_type" />
                <ScalarProperty Name="name" ColumnName="court_name" />
              </ComplexTypeMapping>

            </ResultMapping>
          </FunctionImportMapping>

我如何访问:

IList<Win_Test_Multiple_Result_Set_Entity_Result> obj = EntityObj.Win_Test_Multiple_Result_Set_Entity().ToList<Win_Test_Multiple_Result_Set_Entity_Result>();
IList obj=EntityObj.Win\u Test\u Multiple\u Result\u Set\u Entity().ToList();

这里我只获取第一个查询的结果集,即court\u type和court\u name。但是我想要两个查询的结果集。如何实现这一点?

AFAIK,您不能用EF实现这一点-如果您确实必须从一个存储过程返回多个结果集,那么除了使用基本的原始ADO.NET(
SqlConnection
SqlCommand
SqlDataReader
)来处理这些多个结果集之外,没有其他方法了。AFAIK,使用EF无法做到这一点-如果确实必须从单个存储过程返回多个结果集,那么除了使用基本的原始ADO.NET(
SqlConnection
SqlCommand
SqlDataReader
)来处理这些多个结果集之外,没有其他方法。