C# 如何将多个select查询从存储过程返回到实体?
我在应用程序中使用实体模型(数据库中的EF设计器)。我的存储过程有2个select查询。在阅读了这么多的文章之后,我发现我必须手动更改实体模型的复杂类型(以实现我想要的。或者有其他方法吗?)。我已经更改了它,但是当我访问时,我只得到第一个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
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
)来处理这些多个结果集之外,没有其他方法。