Entity Framework 5 stored procedure with multiple result sets
asp.net-mvc-4, c#, entity-framework, entity-framework-5
Solution
The core EF libraries support multi result set procedures. Unfortunately the designer does not -- and it's not clear if it will upon release.
I too found the documentation a bit sparse, particularly for returning multiple entity types (as opposed to complex types). Fortunately, manually editing the EDMX isn't too complicated. I wrote up a blog post on topic ....
Entity Framework 5 – Multiple Entity-Typed Result Sets from a Stored Procedure (note, my server may take a few minutes for the disks to spin up as not too many people traffic my humble little blog).
The short of it is in the CSDL section ..
<edmx:ConceptualModels>
<Schema Namespace="myModel" ...>
<EntityContainer Name="myModelEntities" ....>
......
<!--
this is what “function import” wrote, that I’m overwriting…
FunctionImport Name="MyMARS_Proc" ReturnType="Collection(myModel.Table_A)"/>
-->
<FunctionImport Name="MyMARS_Proc" >
<ReturnType Type="Collection(myModel.Table_A)" EntitySet="Table_As"/>
<ReturnType Type="Collection(myModel.Table_B)" EntitySet="Table_Bs"/>
</FunctionImport>
Then in the MSL (C-S Mapping section) you'll want...
<edmx:Mappings>
<Mapping Space="C-S" ....>
<EntityContainerMapping ....>
<FunctionImportMapping FunctionImportName="MyMARS_Proc"
FunctionName="myModel.Store.MyMARS_Proc">
<ResultMapping>
<EntityTypeMapping TypeName="myModel.Table_A"/>
</ResultMapping>
<ResultMapping>
<EntityTypeMapping TypeName="myModel.Table_B"/>
</ResultMapping>
</FunctionImportMapping>
Problem
I'm currently coding with asp.net mvc 4.5 and EF5 Beta 2 and I have a stored procedure which returns multiple result sets. I've found this site and it says that the newer version (which I'm using) already has support for multiple result sets. Now I can't seem to find that support. As I'm fairly new to the EF altogether, I hope I'm not doing something wrong. I have no corresponding entities in my database for the result sets created.