2013-02-22 56 views
1

我正在使用連接到我的SQLDatabase的實體數據模型。DateTime.Now使用實體數據模型轉換爲SQLDatetime

一個特定的列是日期時間。

當我宣佈爲Datetime.Now我碰到下面的錯誤值:

Inner Exception: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

這裏是我的代碼片段:

ReworkEntities dbContext = new ReworkEntities(); 

     Carton carton = new Carton(); 

     Carton_Details detail1 = new Carton_Details(); 
     detail1.Detail = "Some Detail Here"; 
     detail1.DateOfSub = DateTime.Now; 

     carton.Carton_Details.Add(detail1); 

     dbContext.AddToCartons(carton); 
     dbContext.SaveChanges(); 

我花了谷歌小時,發現了類似的問題,配發但似乎沒有人爲我工作。

他們建議使用.toSting(「M/dd/yyyy H:mmss tt」),我爲字符串值工作,但我需要DateTime值,轉換回來時它仍然是一樣的。

還試過.Parse,.ParseExact也沒有成功。

另一篇文章建議更改SQL數據庫日期時間格式,但我不能這樣做,因爲它是我們的代碼標準使用它。

有關如何解決問題的任何建議將不勝感激。

Thanx。

+1

您確定只有一個'DataType'的字段是來自此表'Carton_Detail'的'DateTime'嗎? – spajce 2013-02-22 06:10:15

+0

什麼是'detail1.DateofSub'屬性的'Type'? – 2013-02-22 06:13:28

+0

屬性類型是DateTime,是的其他領域發佈罰款,但只有detail1.DateofSub不發佈。 – 2013-02-22 06:18:00

回答

0

我遇到了類似的問題,只需在實體的構造函數中爲屬性賦值,代碼如下所示。

public class Carton_Details 
{ 
    public DateTime DateOfSub { get; set; } 

    public Carton_Details() 
    { 
     this.DateOfSub = DateTime.Now; 
    } 
} 

我希望我能幫上忙。