9

我先用我的asp.net mvc應用程序使用EF代碼。 這裏是我的代碼:首先使用EF代碼將datetime2數據類型轉換爲日期時間數據類型錯誤?

Request.RequestDate = DateTime.Now; 

RequestDate類型爲datetime我的數據庫。 ,這是發生當我使用上面的代碼!:

一個DATETIME2數據類型爲datetime數據類型的轉換導致外的範圍內的值的錯誤。

請幫幫我。謝謝。

+0

[c#將datetime2數據類型轉換爲日期時間數據類型]的可能重複(http://stackoverflow.com/questions/1331779/c-sharp-conversion-of-a-datetime2-data-type-to -a-datetime-data-type) – CodeCaster

+0

你使用SQL 2005嗎? datetime2範圍從0001/01/01到9999/12/31因此是錯誤。如果是這樣,你需要編輯XML edmx文件 –

+0

@json jong:我使用的是sql server 2008,我沒有.edmx文件,因爲我先使用Code。 –

回答

11

編輯:

How to fix the datetime2 out-of-range conversion error using DbContext and SetInitializer?

的問題是,你試圖保存,可以不適合在SQL datetime列的值。這裏的答案將會阻止失敗的轉換。

或在您的數據庫中將列更改爲鍵入datetime2。我完全不知道爲什麼他們的代碼首先是生成datetime列,而不是DATETIME2

下面是一個例子,在SQL

Using DateTime properties in Code-First Entity Framework and SQL Server

+0

我使用Code First,我沒有.edmx文件。 –

+0

我認爲你需要做的是指定該列是datetime類型的。您的代碼是否首先生成數據庫? 您試圖在日期時間列中存儲datetime2對象 –

+0

是的,我的數據庫首先成功地生成了代碼,並且該列的類型是datetime。 –

5

您的日期時間列明確映射到DATETIME2在我的身邊,這是因爲日期時間不可爲空,在某些情況下,該字段未在構造函數中初始化。 我設置我場可爲空

public DateTime? MyDate { get; set; } 

另一個解決方案是初始化場在構造函數中不管是什麼解決了這個。

+0

這解決了它對我來說。反思時,錯誤信息不是很好。我創建了一個DateTime列,爲什麼它試圖將其轉換爲其他東西?爲什麼不告訴我一個違反約束...... – sarin

相關問題