首先使用EF代码将datetime2数据类型转换为日期时间数据类型错误?

Moh*_*are 13 c# entity-framework sql-server-2008 ef-code-first entity-framework-4.3

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

Request.RequestDate = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

RequestDate的类型是我的数据库中的datetime.这是我使用上面代码时发生的错误!:

将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.

请帮我.谢谢.

Bla*_*dan 12

编辑:

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

问题是您正在尝试保存不适合SQL datetime列的值.这里的答案将阻止转换失败.

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

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

在代码优先实体框架和SQL Server中使用DateTime属性


Dan*_*iel 6

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

public DateTime? MyDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

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