16

我首先在我的 asp.net mvc 应用程序中使用 EF 代码。这是我的代码:

Request.RequestDate = DateTime.Now;

RequestDate 的类型是我数据库中的日期时间。这是我使用上述代码时发生的错误!:

将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围。

请帮我。谢谢。

4

2 回答 2

13

编辑:

如何使用 DbContext 和 SetInitializer 修复 datetime2 超出范围的转换错误?

问题是您正在尝试保存一个不适合 SQL 日期时间列的值。这里给出的答案将阻止转换失败。

或在您的数据库中将列更改为 datetime2 类型。我不完全知道为什么他们首先编写代码是生成 datetime 列而不是 datetime2

这是一个在 SQL 中将 Datetime 列显式映射到 datetime2 的示例

在 Code-First Entity Framework 和 SQL Server 中使用 DateTime 属性

于 2012-05-14T14:24:37.870 回答
9

在我这边,这是因为日期时间不可为空,并且在某些情况下,该字段未在构造函数中初始化。我通过将我的字段设置为可为空来解决这个问题

public DateTime? MyDate { get; set; }

另一种解决方案是无论如何初始化构造函数中的字段。

于 2014-04-01T08:51:32.160 回答