Recentemente, tive a necessidade de chamar um procedimento armazenado que retornou vários conjuntos de resultados de dentro do EF e fazer o EF vincular os resultados a uma coleção fortemente tipada.
https://gist.github.com/ScottGuymer/5663359
Isso funciona muito bem e EF faz todo o trabalho pesado de mapear os conjuntos de resultados para os objetos.
O único problema que encontrei foi ter que adicionar o nome do parâmetro para o procedimento armazenado no CommandText assim
cmd.CommandText = "[dbo].[storedProcedureName] @Query"