A fundamental data reader is only a direct access device; By calling Read second time, you move the reader forward to the next grid. You should consume each grid only in the forward direction. For example, you can change the order of the operators:
using (var multi = mapperConnection.QueryMultiple("USP_FetchMarketRecords", parameters, (SqlTransaction)null, 1000000, CommandType.StoredProcedure)) { IEnumerable<MarketRecord.FItem> FItem = multi.Read<MarketRecord.FItem>(); objCResponseVO.addObject("FItem",FItem); IEnumerable<MarketRecord.FSubsystem> FSubsystem = multi.Read<MarketRecord.FSubsystem>(); objCResponseVO.addObject("FSubsystem",FSubsystem); }
Or you can buffer:
using (var multi = mapperConnection.QueryMultiple("USP_FetchMarketRecords", parameters, (SqlTransaction)null, 1000000, CommandType.StoredProcedure)) { IEnumerable<MarketRecord.FItem> FItem = multi.Read<MarketRecord.FItem>().ToList(); IEnumerable<MarketRecord.FSubsystem> FSubsystem = multi.Read<MarketRecord.FSubsystem>().ToList(); objCResponseVO.addObject("FItem",FItem); objCResponseVO.addObject("FSubsystem",FSubsystem); }
source share