【发布时间】:2016-08-23 17:41:32
【问题描述】:
我刚刚部署了一周前可以正常工作的服务器代码。导致错误的代码部分没有改变,但是对象本身发生了变化。
这是一种模型优先的方法(从数据库优先转换而来),我在模型中添加了两个关联字段和两个新表。
引发错误的代码部分是关键任务。它基本上通过设置时间戳来禁用值的并发编辑。但是由于某种原因,它不起作用。
具体代码:
user.AlertConcurrency = DateTime.UtcNow;
db.SaveChanges();
错误:
将 datetime2 数据类型转换为 datetime 数据类型 导致超出范围的值。该语句已终止。
现在,user.AlertConcurrency 字段是数据库中的日期时间类型。我不明白为什么它甚至试图在这里进行 datetime 到 datetime2 的转换。我错过了什么?
【问题讨论】:
-
这可能意味着有另一个 DateTime 属性为空,但在数据库中不可为空。
-
这是否对已保存在数据库中的数据失败?听起来您将数据存储为
datetime2,它没有datetime的有效值。 -
对this question的答案有帮助吗?
-
@GertArnold 因为我之前保存了用户对象,它包含所有必需的日期时间字段为非空,我不修改任何这些字段,我怀疑是这种情况。跨度>
-
@Charles 我在数据库中没有任何 datetime2 字段,只有日期时间。
标签: c# entity-framework datetime datetime2