Casting Ado.net DataReader para IDataRecord dando resultado estranho
Eu tenho uma consulta que eu executo no banco de dados, e posso ver que há um registro para 31/05/2013. Quando eu executar essa consulta de c # com o ADO.NET e, em seguida, use o código a seguir, estou faltando o registro para 31/05/2013
var timeSeriesList = new List<TimeSeries>();
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
timeSeriesList = reader.Cast<IDataRecord>()
.Select(r => new TimeSeries
{
MidRate = (double)r["MidRate"],
RiskFactorName = (string)r["RiskFactorName"],
SeriesDate = (DateTime)r["SeriesDate"]
}).ToList();
}
}
No entanto, se eu usar a mesma consulta com este código:
var timeSeriesList = new List<TimeSeries>();
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
var timeSeries = new TimeSeries
{
MidRate = (double)reader["MidRate"],
RiskFactorName = (string)reader["RiskFactorName"],
SeriesDate = (DateTime)reader["SeriesDate"]
};
timeSeriesList.Add(timeSeries);
}
}
... então o registro em 31/05/2013 está na coleção - por que o primeiro bloco de código deu esse resultado?