最佳答案
我使用的是实体框架4.1中引入的 DbContext 和 Code First API。
数据模型使用基本的数据类型,如 string
和 DateTime
。在某些情况下,我使用的唯一数据注释是 [Required]
,但它不在任何 DateTime
属性上。例如:
public virtual DateTime Start { get; set; }
DbContext 子类也很简单,看起来像:
public class EventsContext : DbContext
{
public DbSet<Event> Events { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Event>().ToTable("Events");
}
}
初始化程序将模型中的日期设置为今年或明年的合理值。
但是,当我运行初始化程序时,我在 context.SaveChanges()
得到这个错误:
Datetime2数据的转换 类型转换为生成的日期时数据类型 在超出范围的值中 声明已被终止。
我不明白为什么会发生这种事因为一切都那么简单。我也不知道如何修复它,因为没有 edmx 文件编辑。
有什么想法吗?