Estoy utilizando las API DbContext y Code First introducidas con Entity Framework 4.1.¿Cómo arreglar el error de conversión fuera de rango datetime2 usando DbContext y SetInitializer?
El modelo de datos utiliza tipos de datos básicos como string
y DateTime
. La única anotación de datos que estoy usando en algunos casos es [Required]
, pero eso no está en ninguna de las propiedades de DateTime
. Ejemplo:
public virtual DateTime Start { get; set; }
El DbContext subclase también es simple y se ve así:
public class EventsContext : DbContext
{
public DbSet<Event> Events { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Event>().ToTable("Events");
}
}
El inicializador establece las fechas en el modelo de los valores sensibles en este año o el próximo año.
Sin embargo cuando funciono el inicializador, consigo este error en context.SaveChanges()
:
La conversión de un datos datetime2 tipo a un tipo de datos de fecha y hora dio como resultado en un valor fuera de rango. La declaración ha finalizado.
No entiendo por qué sucede esto, porque todo es muy simple. Tampoco estoy seguro de cómo solucionarlo ya que no hay ningún archivo edmx para editar.
¿Alguna idea?
¿Puede utilizar el Analizador de SQL para ver insertar/actualizar sentencias de SQL? Es bastante difícil decir lo que está sucediendo aquí; no vemos su inicializador o entidades. SQL Profiler te ayudará mucho a localizar el problema. –
En mi caso, agregué un campo a una tabla y modifiqué el formulario, olvidé actualizar Bind Includes y mi campo se estableció en NULL. Entonces el error ayudó a corregir mi descuido. – strattonn