如何将多个选择查询从存储过程返回到实体?

时间:2017-02-04 10:29:40

标签: c# entity-framework stored-procedures

我在我的应用程序中使用Entity Model(来自数据库的EF Designer)。我的存储过程有2个选择查询。经过这么多文章后,我发现我必须手动更改实体模型的复杂类型(实现我想要的目标。或者还有其他方法吗?)。我已经更改了它,但是当我访问时,我只获得第一个选择查询的结果集。如何获取两个查询的结果集?

对于Ex:这是我的存储过程。

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

这是我修改过的函数import和复杂类型:

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

这里我只得到第一个查询的结果集,即court_type和court_name。但我想要两个查询的结果集。怎么做到这一点?

0 个答案:

没有答案