Cuando intentamos persistir un valor de tipo null mediante el ORM de NHibernate para una propiedad DateTime normalmente nos encontramos con que el API no puede guardar dicho valor. A modo de ejemplo si tenemos la clase persona(la única clase que existe en los ejemplos):
public class Persona
{
public Persona(){}
public virtual Guid Id { get; set; }
public virtual String NumeroIdentificacion { get; set; }
public virtual String Nombre{ get; set; }
public virtual DateTime FechaDeNacimiento { get; set; }
}
E intentamos guardarla nos enfrentamos a un error similar a:
SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM
SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM
Para poder evitar este error debemos asignarle a la propiedad DateTime que pueda ser null(llamada comúmnete como Nullable, esto se logra mediante el operador "?". Así, debemos cambiar nuestra clase a:
Esto solucionaría nuestro problema.
public class Persona
{
public Persona(){}
public virtual Guid Id { get; set; }
public virtual String NumeroIdentificacion { get; set; }
public virtual String Nombre{ get; set; }
public virtual DateTime? FechaDeNacimiento { get; set; }
}
No hay comentarios:
Publicar un comentario