我首先在我的asp.net mvc应用程序中使用EF代码。 这是我的代码:
Request.RequestDate = DateTime.Now;
RequestDate的类型是我的数据库中的datetime。 这是我使用上面的代码时发生的错误!:
将datetime2数据类型转换为日期时间数据类型会导致超出范围的值。
请帮帮我。感谢。
答案 0 :(得分:12)
编辑:
How to fix the datetime2 out-of-range conversion error using DbContext and SetInitializer?
问题是您正在尝试保存不适合SQL datetime列的值。这里给出的答案将阻止转换失败。
或在您的数据库中将列更改为类型datetime2。我不确切地知道为什么他们的代码首先是生成datetime列而不是datetime2
以下是在SQL
中将Datetime列显式映射到datetime2的示例Using DateTime properties in Code-First Entity Framework and SQL Server
答案 1 :(得分:6)
在我这边,这是因为日期时间不可为空,在某些情况下,字段未在构造函数中初始化。 我通过将我的字段设置为可空的
来解决这个问题public DateTime? MyDate { get; set; }
另一种解决方案是在构造函数中初始化字段,无论如何。