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

时间:2012-05-14 14:21:46

标签: c# sql-server-2008 entity-framework ef-code-first entity-framework-4.3

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

Request.RequestDate = DateTime.Now;

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

  

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

请帮帮我。感谢。

2 个答案:

答案 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; }

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