He visto muchas, muchas versiones de esto en SO, pero ninguna de ellas parece funcionar para mis necesidades.Manejo de DateTime DBNull
Mis datos provienen de una base de datos de proveedores que permite campos nulos para DateTime. Primero, transfiero mis datos a una DataTable.
using (SqlCommand cmd = new SqlCommand(sb.ToString(), conn))
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
Estoy convirtiendo un DataTable a una lista <> para su procesamiento.
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")
}
Así que, ¿cómo puedo comprobar por DBNull en este caso? Traté de escribir un método.
public DateTime CheckDBNull(object dateTime)
{
if (dateTime == DBNull.Value)
return DateTime.MinValue;
else
return (DateTime)dateTime;
}
Así que en mi equipo objeto definir la acción 'DateTime' campos como' 'DateTime –
Si se trata de un modelo de negocio válido para su Equipo para no tener una fecha de inicio o final, entonces sí. De lo contrario, su capa de db debería arrojar una excepción. –
sí, es un atajo para 'Nullable' –