Я видел много-много версий этого на SO, но ни одна из них, похоже, не совсем подходит для моих нужд
Мои данные поступают из базы данных поставщиков, которая допускает нулевое значение для полей DateTime. Сначала я извлекаю свои данные в таблицу данных.
using (SqlCommand cmd = new SqlCommand(sb.ToString(), conn))
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
Я преобразовываю таблицу данных в список <> для обработки.
var equipment = from i in dt.AsEnumerable()
select new Equipment()
{
Id = i.Field<string>("ID"),
BeginDate = i.Field<DateTime>("BeginDate"),
EndDate = i.Field<DateTime>("EndDate"),
EstimatedLife = i.Field<double>("EstimatedLife")
}
Итак, как мне проверить DBNull в этом случае? Я пытался написать метод.
public DateTime CheckDBNull(object dateTime)
{
if (dateTime == DBNull.Value)
return DateTime.MinValue;
else
return (DateTime)dateTime;
}