private IEnumerable <SqlDataRecord> ToSqlDataRecords(IEnumerable <LocalWeatherData> localWeatherDataList) { // Construct the Data Record with the MetaData: SqlDataRecord sdr = new SqlDataRecord( new SqlMetaData("StationIdentifier", SqlDbType.NVarChar, 5), new SqlMetaData("Timestamp", SqlDbType.DateTime2), new SqlMetaData("QualityCode", SqlDbType.TinyInt), new SqlMetaData("StationPressure", SqlDbType.Real), new SqlMetaData("AirTemperatureAt2m", SqlDbType.Real), new SqlMetaData("AirTemperatureAt5cm", SqlDbType.Real), new SqlMetaData("RelativeHumidity", SqlDbType.Real), new SqlMetaData("DewPointTemperatureAt2m", SqlDbType.Real) ); // Now yield the Measurements in the Data Record: foreach (var localWeatherData in localWeatherDataList) { sdr.SetString(0, localWeatherData.StationIdentifier); sdr.SetDateTime(1, localWeatherData.TimeStamp); sdr.SetByte(2, localWeatherData.QualityCode); sdr.SetNullableFloat(3, localWeatherData.StationPressure); sdr.SetNullableFloat(4, localWeatherData.AirTemperatureAt2m); sdr.SetNullableFloat(5, localWeatherData.AirTemperatureAt5cm); sdr.SetNullableFloat(6, localWeatherData.RelativeHumidity); sdr.SetNullableFloat(7, localWeatherData.DewPointTemperatureAt2m); yield return(sdr); } }