Przesyłanie Ado.net DataReader do IDataRecord, dając dziwny wynik
Mam zapytanie, które uruchamiam w bazie danych i widzę, że istnieje rekord na 31.05.2013. Kiedy uruchamiam to zapytanie z C # za pomocą ADO.NET, a następnie używam następującego kodu, brakuje mi rekordu na dzień 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();
}
}
Jeśli jednak użyję tego samego zapytania z tym kodem:
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);
}
}
... wtedy rekord z 31.05.2013 znajduje się w kolekcji - dlaczego pierwszy blok kodu dałby ten wynik?