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.

Original source