关于ef调用存储过程返回多结果集的有关问题

关于ef调用存储过程返回多结果集的问题
ef为6.0版本. 数据库sql2008 (后以为是bug换成sql2005,但错误依旧)

edmx使用xml格式  returntype已经改了。
返回的3个结果集的 complex也已经定义过了,并且已经看到有模板生成的对应的实体类。
返回的三个结果集对应的ResultMapping 也已经添加好了。
现在问题如下:
在我的代码中必须使用如下格式:(db  为DbContext 对应的 实例化对象             proc 为对应存储过程的名字)

var result1=db.proc();
var result2=db.proc().GetNextResult<t2>();
var result3=db.proc().GetNextResult<t2>().GetNextResult<t3>();
可以很正确的返回我需要的数据。

请问各位大神:
为什么  我将代码改为
var result1=db.proc();
var result2=result1.GetNextResult<t2>();
var result3=result2.GetNextResult<t3>();
List<t3> t3=result3.tolist();  报索引超出了数组界限 这个错误。求指点。拜托了,在线等。
------解决思路----------------------
这个,重复发帖总归是不好的
------解决思路----------------------
http://www.codeproject.com/Articles/675933/Returning-Multiple-Result-Sets-from-an-Entity-Fram
不知道你什么问题,但这个帖子里面是可以的

using (var dbContext = new StoreDBEntities())
    {
        var results = dbContext.GetAllCategorisAndProducts();
        //Get first enumerate result set
        categProd.Categories.AddRange(results);
        //Get second result set
        var products = results.GetNextResult<Product_SprocResult>();
        categProd.Products.AddRange(products);
        //Return all result sets
        return categProd;
    }

------解决思路----------------------
好吧,这也就不知道原因了……
------解决思路----------------------
这样的异常我其实是怀疑你的查询数据里面有个别数据在sql语句里执行的话是超出了索引范围
你不愿意通过查询分析器以不同条件执行查询检测,那你至少应该通过sqlserver profiler来跟踪一下查询语句,你的第一种写法没报异常,不代表存储过程没有问题,只是GetNextResult不会报出异常而已。
如果你还是不愿意做这样的前期检查,就当是帮你顶一下帖子吧。
------解决思路----------------------
var result2=result1.GetNextResult<t2>();
var result3=result2.GetNextResult<t3>();
List<t3> t3=result3.tolist(); 

-》这样写   个人理解为  result2的内容应该会重新计算了,result3也同理。你再toList的时候 找不到对应的索引值?纯属个人猜测。
------解决思路----------------------
怀着歉意来观摩,帮老师顶下!